1.異常的體系java
1)請描述異常的繼承體系程序員
異常繼承體系爲:異常的根類是 java.lang.Throwable,其下有兩個子類:java.lang.Error 與 java.util.Exception 。而Exception又分爲編譯時期異常:checked異常,與運行時期異常:runtime異常。 數組
2)請描述你對錯誤(Error)的理解函數
Error:表示不可修復的惡性的錯誤,只能經過修改代碼規避錯誤的產生,一般是系統級別的,因此很嚴重。spa
3)請描述你對異常(Expection的理解)指針
Exception:表示可修復的良性(相對於錯誤)的異常,異常產生後程序員能夠而且應該經過代碼的方式糾正,使程序繼續運行,是必需要處理的。orm
4)請描述你對運行時異常(RuntimeException)的理解對象
運行時期異常:runtime異常。在運行時期,檢查異常.在編譯時期,運行異常不會編譯器檢測(不報錯)。繼承
2.throw與throws的區別索引
問題:
1. 請描述throw的使用位置,做用是什麼?
2. 請描述throws的使用位置,做用是什麼?
答:
3.異常的處理方式
問題:
1. 異常處理方式有幾種,分別是什麼?
2. 詳細闡述每種方式對異常是如何處理的
答:
a) try代碼塊中是可能出現異常的代碼
b) catch代碼塊,是遇到異常,對異常進行處理的代碼
c) finally代碼塊是不管是否發生異常,都必須執行的代碼,用於釋放資源.
4.請列舉常見異常,並說明產生緣由
NullPointerException:空指針異常。
當應用試圖在要求使用對象的地方使用了null時,拋出該異常。譬如:調用null對象的實例方法、訪問null對象的屬性、計算null對象的長度等等。
ArrayIndexOutOfBoundsException:數組索引越界異常。
當對數組的索引值爲負數或大於等於數組大小時拋出此異常。
ArithmeticException:算術運算異常。
程序中出現了除以零這樣的運算就會出這樣的異常,對這種異常,你們就要好好檢查一下本身程序中涉及到數學運算的地方,公式是否是有不妥了。
NumberFormatException:數字格式異常。
當試圖將一個String轉換爲指定的數字類型,而該字符串確不知足數字類型要求的格式時,拋出該異常。
5.根據給出的相應代碼,分析可能產生的結果。
1).舉例:
public static void main(String[]args){
String str=null;
System.out.println(str.length());
}
答:變量str的值爲null,調用方法時,報空指針異常NullPointerException
2).舉例:
public static void main(String[]args){
int arr[]={1,2};
System.out.println(arr[2]);
}
答:索引值2大於等於數組arr的長度時,報數組索引越界異常ArrayIndexOutOfBoundsException
3).舉例:
public static void main(String[]args){
System.out.println(1/0);
}
答:整數0作了分母,報算術運算異常ArithmeticException:/by zero
4).舉例:
public static void main(String[]args){
System.out.println(Integer.parseInt("itcast"));
}
答:
把字符串「itcast」轉換爲Integer類型時,固然會報數字格式化異常啦NumberFormatException
5)舉例:
public static void main(String[] args) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-mm-dd");
try {
Date date = format.parse("2018-04-03");
System.out.println("程序正常");
} catch (ParseException e) {
System.out.println("程序異常");
}
}
答:
打印結果「程序正常」.try代碼塊中並無產生異常,catch代碼塊中的代碼不會執行。