今天把幾個常見的異常總結一下,希望自己能熟記,別忘記!!!
1.NullPointerException: 空指針異常。經驗發現這個異常是經常會發生的,屬於運行時異常。
舉例:
public static void main(String[] args) {
String str = null;
//此處報空指針異常
System.out.println(str.length());
}
控制台輸出的異常信息為:
Exception in thread "main" java.lang.NullPointerException
at cn.com.gjw.MyClass.main(MyClass.java:7)
2.ClassCastException: 類型強制轉換異常。Java的一些語法知識不太熟悉的時候會發生的異常。
舉例:
public static void main(String[] args) {
// 類型強制轉換異常
Object x = new String("String");
System.out.println((Integer) x);
}
控制台輸出的異常信息為:
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at cn.com.gjw.MyClass.main(MyClass.java:7)
3.ArrayIndexOutOfBoundsException: 數組下標越界異常。特別常見的一個異常,粗心的程序員都會犯的錯誤。
舉例:
public static void main(String[] args) {
int arr[] = {1,2};
// 此處報數組下標越界異常
System.out.println(arr[2]);
}
控制台輸出的異常信息為:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2
at cn.com.gjw.MyClass.main(MyClass.java:7)
4.ArithmeticException:算術運算異常。算術跟我水平差不多的你有沒有犯過類似的錯誤呢??
舉例:
public static void main(String[] args) {
// 整數0做了分母,報算術運算異常
System.out.println(1 / 0);
}
控制台輸出的異常信息為:
Exception in thread "main" java.lang.ArithmeticException: / by zero
at cn.com.gjw.MyClass.main(MyClass.java:6)
5.NumberFormatException: 數字格式異常。什么是數字格式異常呢?一個例子說明一切。
舉例:
public static void main(String[] args) {
// 將字符串“it”轉換為Integer類型的,當然會報數字格式異常啦
System.out.println(Integer.parseInt("it"));
}
控制台輸出的異常信息為:
Exception in thread "main" java.lang.NumberFormatException: For input string: "it"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at cn.com.gjw.MyClass.main(MyClass.java:6)