Invalid Option, Missing Argument ইত্যাদি হ্যান্ডল করা

Command Line এর Error Handling এবং Debugging - অ্যাপাচি কমন্স সিআলআই (Apache Commons CLI) - Java Technologies

275

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 ব্যবহার করে সাহায্য প্রদর্শন করে। এর মাধ্যমে আপনি ব্যবহারকারীর ইন্টারঅ্যাকশনকে আরো কার্যকর এবং ইউজার-ফ্রেন্ডলি করতে পারেন।


Content added By
Promotion

Are you sure to start over?

Loading...