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