Apache Commons CLI লাইব্রেরি কমান্ড লাইন আর্গুমেন্ট পার্সিংকে সহজ করে, কিন্তু কখনো কখনো ভুল অপশন বা অনুপস্থিত আর্গুমেন্টের কারণে পার্সিংয়ের সমস্যা হতে পারে। এই ধরনের সমস্যাগুলো সঠিকভাবে হ্যান্ডল করা প্রয়োজন, যাতে ব্যবহারকারীর জন্য সাহায্য প্রদর্শন করা যায় এবং অ্যাপ্লিকেশন সঠিকভাবে চলতে থাকে।
এই গাইডে, আমরা দেখব Invalid Option, Missing Argument, এবং অন্যান্য সাধারণ কমান্ড লাইন আর্গুমেন্ট সম্পর্কিত ত্রুটিগুলো কিভাবে হ্যান্ডল করা যায়।
Invalid Option Handling
যখন ব্যবহারকারী কোনো ভুল অপশন প্রদান করেন, তখন ParseException অথবা HelpFormatter ব্যবহার করে তাকে ভুল অপশন সম্পর্কে জানানো যেতে পারে।
উদাহরণ: Invalid Option হ্যান্ডলিং
import org.apache.commons.cli.*;
public class InvalidOptionExample {
public static void main(String[] args) {
Options options = new Options();
// 'input' অপশন তৈরি করা
Option input = new Option("i", "input", true, "Input file");
input.setRequired(true); // এটি Required অপশন
options.addOption(input);
CommandLineParser parser = new DefaultParser();
CommandLine cmd = null;
try {
// আর্গুমেন্ট পার্স করা
cmd = parser.parse(options, args);
// 'input' অপশন থেকে ফাইল নাম বের করা
System.out.println("Input file: " + cmd.getOptionValue("input"));
} catch (ParseException e) {
// ভুল অপশন দেয়ার ক্ষেত্রে Help প্রদর্শন করা
System.out.println("Invalid option or missing argument.");
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("InvalidOptionExample", options);
}
}
}
ব্যাখ্যা:
- এখানে input অপশনটি required করা হয়েছে, অর্থাৎ এটি কমান্ড লাইনে অবশ্যই দিতে হবে।
- যদি ব্যবহারকারী কোনো ভুল অপশন দেয় বা
-iঅপশনটি না দেয়, তাহলে ParseException থ্রো হবে এবং HelpFormatter এর মাধ্যমে সাহায্য দেখানো হবে।
উদাহরণ চালানো:
java InvalidOptionExample -x somefile.txt
আউটপুট:
Invalid option or missing argument.
Usage: InvalidOptionExample
-i,--input <arg> Input file
Missing Argument Handling
অনেক সময় একটি অপশনের জন্য আর্গুমেন্ট দেওয়া হয় না, যা Missing Argument এর কারণে সমস্যা সৃষ্টি করে। এই ধরনের পরিস্থিতি সঠিকভাবে হ্যান্ডল করা প্রয়োজন।
উদাহরণ: Missing Argument হ্যান্ডলিং
import org.apache.commons.cli.*;
public class MissingArgumentExample {
public static void main(String[] args) {
Options options = new Options();
// 'output' অপশন তৈরি করা
Option output = new Option("o", "output", true, "Output file");
output.setRequired(true); // এটি Required অপশন
options.addOption(output);
CommandLineParser parser = new DefaultParser();
CommandLine cmd = null;
try {
// আর্গুমেন্ট পার্স করা
cmd = parser.parse(options, args);
// 'output' অপশন থেকে আর্গুমেন্ট বের করা
String outputFile = cmd.getOptionValue("output");
System.out.println("Output file: " + outputFile);
} catch (ParseException e) {
// Missing argument দেয়ার ক্ষেত্রে Help প্রদর্শন করা
System.out.println("Missing argument for option: " + e.getMessage());
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("MissingArgumentExample", options);
}
}
}
ব্যাখ্যা:
- এখানে
outputঅপশনটি required করা হয়েছে, এবং এটি অবশ্যই একটি আর্গুমেন্ট গ্রহণ করবে। - যদি আর্গুমেন্ট না দেয়া হয়, তাহলে ParseException ক্যাচ করা হবে এবং HelpFormatter ব্যবহার করে ব্যবহারকারীকে সাহায্য প্রদর্শন করা হবে।
উদাহরণ চালানো:
java MissingArgumentExample -o
আউটপুট:
Missing argument for option: output
Usage: MissingArgumentExample
-o,--output <arg> Output file
Unknown Option Handling
কখনও কখনও ব্যবহারকারী অজানা বা অগ্রহণযোগ্য অপশন দেয়, যেমন -x। এই ধরনের অপশনগুলিকে সঠিকভাবে হ্যান্ডল করতে হবে।
উদাহরণ: Unknown Option Handling
import org.apache.commons.cli.*;
public class UnknownOptionExample {
public static void main(String[] args) {
Options options = new Options();
// 'input' অপশন তৈরি করা
Option input = new Option("i", "input", true, "Input file");
input.setRequired(true); // এটি Required অপশন
options.addOption(input);
CommandLineParser parser = new DefaultParser();
CommandLine cmd = null;
try {
// আর্গুমেন্ট পার্স করা
cmd = parser.parse(options, args);
// 'input' অপশন থেকে আর্গুমেন্ট বের করা
System.out.println("Input file: " + cmd.getOptionValue("input"));
} catch (ParseException e) {
// অজানা অপশন দেয়ার ক্ষেত্রে Help প্রদর্শন করা
System.out.println("Unknown option: " + e.getMessage());
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("UnknownOptionExample", options);
}
}
}
ব্যাখ্যা:
- এখানে যদি ব্যবহারকারী অজানা অপশন দেয়, তাহলে ParseException থ্রো হবে এবং HelpFormatter ব্যবহার করে Unknown option মেসেজ দেখানো হবে।
উদাহরণ চালানো:
java UnknownOptionExample -x
আউটপুট:
Unknown option: -x
Usage: UnknownOptionExample
-i,--input <arg> Input file
Combining Invalid and Missing Argument Handling
একটি অ্যাপ্লিকেশনে আপনি Invalid Option, Missing Argument, এবং Unknown Option সকল পরিস্থিতি একত্রে হ্যান্ডল করতে পারেন, এবং এতে সঠিকভাবে সাহায্য প্রদান করতে পারেন।
import org.apache.commons.cli.*;
public class CombinedHandlingExample {
public static void main(String[] args) {
Options options = new Options();
// 'username' অপশন তৈরি করা
Option username = new Option("u", "username", true, "Username");
username.setRequired(true); // Required
options.addOption(username);
CommandLineParser parser = new DefaultParser();
CommandLine cmd = null;
try {
// আর্গুমেন্ট পার্স করা
cmd = parser.parse(options, args);
// 'username' অপশন থেকে মান বের করা
String usernameValue = cmd.getOptionValue("username");
System.out.println("Username: " + usernameValue);
} catch (ParseException e) {
// Error হ্যান্ডলিং
System.out.println("Error: " + e.getMessage());
HelpFormatter formatter = new HelpFormatter();
formatter.printHelp("CombinedHandlingExample", options);
}
}
}
উদাহরণ চালানো:
java CombinedHandlingExample -u
আউটপুট:
Error: Missing argument for option: username
Usage: CombinedHandlingExample
-u,--username <arg> Username
সারাংশ
Apache Commons CLI লাইব্রেরি দিয়ে আপনি সহজে Invalid Option, Missing Argument, Unknown Option ইত্যাদি ত্রুটিগুলি হ্যান্ডল করতে পারেন। এটি ব্যবহারকারীদের সঠিকভাবে কমান্ড লাইন আর্গুমেন্ট প্রদান করতে সহায়তা করে এবং তাদের জন্য HelpFormatter ব্যবহার করে সাহায্য প্রদর্শন করে। এর মাধ্যমে আপনি ব্যবহারকারীর ইন্টারঅ্যাকশনকে আরো কার্যকর এবং ইউজার-ফ্রেন্ডলি করতে পারেন।
Read more