Apache Commons CLI লাইব্রেরি কমান্ড লাইন আর্গুমেন্ট পার্সিং সহজ করে তোলে, তবে কখনো কখনো ভুল আর্গুমেন্ট বা অপশন দেয়ার কারণে ত্রুটি (error) হতে পারে। এ ধরনের ত্রুটি সঠিকভাবে হ্যান্ডল করা এবং ব্যবহারকারীকে সাহায্য প্রদর্শন (help formatting) করা গুরুত্বপূর্ণ। HelpFormatter ব্যবহার করে আপনি সঠিক কমান্ড এবং আর্গুমেন্টের উদাহরণ দিতে পারেন, যাতে ব্যবহারকারীরা সঠিকভাবে আর্গুমেন্ট প্রদান করতে পারে।
এই গাইডে, আমরা Error Handling এবং Help Formatting কিভাবে Apache Commons CLI লাইব্রেরিতে ব্যবহার করা যায় তা দেখবো।
Error Handling in Apache Commons CLI
এটি একটি সাধারণ প্র্যাকটিস যখন আপনি কমান্ড লাইন আর্গুমেন্ট পার্সিং করছেন, তখন ParseException থ্রো হবে যদি কোনো আর্গুমেন্ট ভুলভাবে দেয়া হয়। এছাড়া, আপনি ভুল অপশন, অনুপস্থিত আর্গুমেন্ট, বা অন্য কোনো ত্রুটির কারণে HelpFormatter ব্যবহার করে সাহায্য প্রদর্শন করতে পারেন।
ধাপ 1: Error Handling উদাহরণ
import org.apache.commons.cli.*;
public class ErrorHandlingExample {
public static void main(String[] args) {
// Options তৈরি করা
Options options = new Options();
// 'input' অপশন তৈরি করা
Option input = new Option("i", "input", true, "Input file");
input.setRequired(true); // এটি Required অপশন
options.addOption(input);
// 'output' অপশন তৈরি করা
Option output = new Option("o", "output", true, "Output file");
output.setRequired(false); // Optional অপশন
options.addOption(output);
CommandLineParser parser = new DefaultParser();
CommandLine cmd = null;
try {
// আর্গুমেন্ট পার্স করা
cmd = parser.parse(options, args);
// 'input' অপশন থেকে ফাইল নাম বের করা
String inputFile = cmd.getOptionValue("input");
System.out.println("Input file: " + inputFile);
// 'output' অপশন থেকে ফাইল নাম বের করা
String outputFile = cmd.getOptionValue("output");
System.out.println("Output file: " + outputFile);
} catch (ParseException e) {
// ত্রুটি হ্যান্ডলিং
System.out.println("Error: " + e.getMessage());
// HelpFormatter ব্যবহার করে সাহায্য প্রদর্শন
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("ErrorHandlingExample", options);
}
}
}
ব্যাখ্যা:
- ParseException থ্রো হলে HelpFormatter ব্যবহার করে ব্যবহারকারীকে সঠিক আর্গুমেন্ট এবং অপশন সম্পর্কে সাহায্য প্রদর্শন করা হয়।
- HelpFormatter ব্যবহার করে কমান্ড লাইনে সঠিক আর্গুমেন্ট প্রদর্শন করা হবে, যা ব্যবহারকারীকে সঠিকভাবে আর্গুমেন্ট প্রদান করতে সাহায্য করবে।
উদাহরণ চালানো:
java ErrorHandlingExample -o output.txt
আউটপুট:
Error: Missing argument for option: input
Usage: ErrorHandlingExample
-i,--input <arg> Input file
-o,--output <arg> Output file
এখানে, -i অপশন (যেটি required) দেয়া হয়নি, তাই HelpFormatter সাহায্য প্রদর্শন করবে।
Help Formatting with Apache Commons CLI
HelpFormatter একটি শক্তিশালী টুল যা ব্যবহারকারীদের সাহায্য প্রদর্শনের জন্য ব্যবহৃত হয়। এটি কিভাবে সঠিক কমান্ড, অপশন এবং আর্গুমেন্ট প্রদর্শন করতে হবে তা কাস্টমাইজ করতে সাহায্য করে। আপনি যেভাবে কমান্ড লাইন আর্গুমেন্ট এবং অপশন গঠন করতে চান, সেভাবেই HelpFormatter ব্যবহার করতে পারেন।
ধাপ 2: HelpFormatter উদাহরণ
import org.apache.commons.cli.*;
public class HelpFormatterExample {
public static void main(String[] args) {
// Options তৈরি করা
Options options = new Options();
// 'input' অপশন তৈরি করা
Option input = new Option("i", "input", true, "Input file");
input.setRequired(true); // Required option
options.addOption(input);
// 'output' অপশন তৈরি করা
Option output = new Option("o", "output", true, "Output file");
output.setRequired(false); // Optional option
options.addOption(output);
// HelpFormatter ব্যবহার করে সাহায্য প্রদর্শন করা
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("HelpFormatterExample", options);
}
}
ব্যাখ্যা:
- HelpFormatter ব্যবহার করে আমরা সহজে Usage এবং Options প্রদর্শন করতে পারি।
printHelp()মেথডের মাধ্যমে আমরা HelpFormatterExample কমান্ডের জন্য সাহায্য প্রদর্শন করব।
আউটপুট:
Usage: HelpFormatterExample
-i,--input <arg> Input file
-o,--output <arg> Output file
এখানে, printHelp() মেথড ব্যবহার করে অপশন এবং আর্গুমেন্টের সঠিক ফরম্যাট দেখানো হয়েছে।
ধাপ 3: Customizing Help Output
আপনি HelpFormatter কাস্টমাইজ করতে পারেন, যেমন আউটপুট ফরম্যাট, লাইন ব্রেক, অথবা আরও বিস্তারিত অপশন তথ্য প্রিন্ট করতে।
Custom HelpFormatter
import org.apache.commons.cli.*;
public class CustomHelpFormatterExample {
public static void main(String[] args) {
// Options তৈরি করা
Options options = new Options();
// 'input' অপশন তৈরি করা
Option input = new Option("i", "input", true, "Input file");
input.setRequired(true); // Required option
options.addOption(input);
// 'output' অপশন তৈরি করা
Option output = new Option("o", "output", true, "Output file");
output.setRequired(false); // Optional option
options.addOption(output);
// Custom HelpFormatter কনফিগার করা
HelpFormatter formatter = new HelpFormatter();
formatter.setWidth(100); // আউটপুট লাইনের প্রস্থ নির্ধারণ করা
formatter.setOptionComparator(null); // অপশনগুলির শোয়ার অর্ডার সেট করা
formatter.setSyntaxPrefix("Usage: ");
formatter.printHelp("CustomHelpFormatterExample", options);
}
}
ব্যাখ্যা:
- এখানে HelpFormatter এর আউটপুট কাস্টমাইজ করা হয়েছে, যেমন আউটপুট লাইনের প্রস্থ, অপশন কম্প্যারেটর, এবং সিনট্যাক্স প্রিফিক্স।
আউটপুট:
Usage: CustomHelpFormatterExample
-i,--input <arg> Input file
-o,--output <arg> Output file
এখানে HelpFormatter এর আউটপুট আরও কাস্টমাইজড।
সারাংশ
Apache Commons CLI এর মাধ্যমে Error Handling এবং Help Formatting অত্যন্ত গুরুত্বপূর্ণ, কারণ এটি কমান্ড লাইন অ্যাপ্লিকেশনের ইউজার ফ্রেন্ডলিনেস এবং ব্যবহারকারীর ত্রুটি চেকিং সহজ করে তোলে। ParseException ব্যবহার করে Invalid Option, Missing Argument ইত্যাদি ত্রুটিগুলি হ্যান্ডল করা এবং HelpFormatter ব্যবহার করে সাহায্য প্রদর্শন করা খুবই গুরুত্বপূর্ণ। এতে ব্যবহারকারী সঠিকভাবে আর্গুমেন্ট প্রদান করতে সক্ষম হবে এবং অ্যাপ্লিকেশন সঠিকভাবে কাজ করবে।
Read more