কম্পিউটার টিউটোরিয়াল

জাভাতে NumberFormatException (অনচেকড) কীভাবে হ্যান্ডেল করবেন?


NumberFormatException হল একটি অনচেকড এক্সেপশন যা parseXXX() মেথডগুলো দ্বারা নিক্ষেপিত হয় যখন সেগুলো একটি স্ট্রিংকে সংখ্যায় রূপান্তর (ফরম্যাট) করতে ব্যর্থ হয়।

NumberFormatException দিয়ে java.lang প্যাকেজের ক্লাসগুলোতে অনেক মেথড/কন্সট্রাক্টর এই এক্সেপশন নিক্ষেপ করতে পারে। এখানে কিছু উদাহরণ:

  • public static int parseInt(String s) throws NumberFormatException
  • public static Byte valueOf(String s) throws NumberFormatException
  • public static byte parseByte(String s) throws NumberFormatException
  • public static byte parseByte(String s, int radix) throws NumberFormatException
  • public Integer(String s) throws NumberFormatException
  • public Byte(String s) throws NumberFormatException

প্রতিটি মেথডের জন্য নির্দিষ্ট পরিস্থিতি রয়েছে যেখানে এটি NumberFormatException নিক্ষেপ করতে পারে। উদাহরণস্বরূপ, public static int parseInt(String s) throws NumberFormatException তখন নিক্ষেপ করে যখন:

  • স্ট্রিং s নাল বা এর দৈর্ঘ্য শূন্য।
  • স্ট্রিং s-এ নন-নিউমেরিক ক্যারেক্টার থাকে।
  • স্ট্রিং s-র মান একটি ইন্টিজার রিপ্রেজেন্ট করে না।

উদাহরণ ১

public class NumberFormatExceptionTest {
    public static void main(String[] args){
        int x = Integer.parseInt("30k");
        System.out.println(x);
    }
}

আউটপুট

Exception in thread "main" java.lang.NumberFormatException: For input string: "30k"
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
    at java.lang.Integer.parseInt(Integer.java:580)
    at java.lang.Integer.parseInt(Integer.java:615)
    at NumberFormatExceptionTest.main(NumberFormatExceptionTest.java:3)

NumberFormatException কীভাবে হ্যান্ডেল করবেন

NumberFormatException হ্যান্ডেল করার দুটি উপায় রয়েছে:

  • try এবং catch ব্লক ব্যবহার করে এক্সেপশন নিক্ষেপকারী কোডটি ঘেরে রাখুন।
  • throws কিওয়ার্ড ব্যবহার করে এক্সেপশন ডিক্লেয়ার করুন।

উদাহরণ ২

public class NumberFormatExceptionHandlingTest {
    public static void main(String[] args) {
        try {
            new NumberFormatExceptionHandlingTest().intParsingMethod();
        } catch (NumberFormatException e) {
            System.out.println("We can catch the NumberFormatException");
        }
    }
    public void intParsingMethod() throws NumberFormatException{
        int x = Integer.parseInt("30k");
        System.out.println(x);
    }
}

উপরোক্ত উদাহরণে, intParsingMethod() মেথডটি Integer.parseInt("30k") দ্বারা নিক্ষেপিত এক্সেপশন অবজেক্টকে তার কলিং মেথড যা এই কেসে main() মেথড, তাও প্রসারিত করে।

আউটপুট

We can catch the NumberFormatException
  1. জাভাতে StringIndexOutOfBoundsException (অনচেকড) কীভাবে হ্যান্ডেল করবেন?

  2. জাভাতে ArrayStoreException (অনচেকড) কীভাবে হ্যান্ডেল করবেন?

  3. জাভাতে ArithmeticException (অনচেকড) কীভাবে হ্যান্ডেল করবেন?

  4. জাভাতে Runtime Exception কীভাবে হ্যান্ডেল করবেন?