1. 程式人生 > >java之程式的異常體系結構,實習面試點

java之程式的異常體系結構,實習面試點

java之程式的異常體系結構

1. 程式中的異常

  1. 不可避免的異常,在系統的執行過程中仍然會遇到一些問題,因為很多問題不是靠程式碼能夠避免的,比如:客戶輸入資料的格式,讀取檔案是否存在,網路是否始終保持通暢等等
  2. 異常:在Java語言中,將程式執行中發生的不正常情況稱為“異常”。(開發過程中的語法錯誤和邏輯錯誤不是異常)
  3. 對於這些錯誤,一般有兩種解決方法:一是遇到錯誤就終止程式的執行。另一種方法是由程式設計師在編寫程式時,就考慮到錯誤的檢測、錯誤訊息的提示,以及錯誤的處理。

2. java異常層次體系結構圖

在這裡插入圖片描述

3. java異常的體系結構,實習面試點

  1. java.lang.Throwable
    1.1. Error:錯誤,程式中不進行處理(通常是jar匯入不全,或者jdk版本,路徑等問題)
    1.2. Exception:異常,要求在編寫程式時,就要考慮到對這些異常的處理
  2. Exception:異常
    2.1. 編譯時異常:在編譯期間會出現的異常(執行javac.exe命令 時,出現異常) ,且IO異常通常需要顯示處理。
    2.2執行時異常:在執行期間出現的異常(執行java.exe命令時,出現異常),通常為程式設計師考慮不周,而出現的異常。
    注:當執行一個程式時,如果出現異常,那麼異常之後的程式碼就不再執行!

java異常程式碼體會

public class TestException {
	//編譯時異常
	@Test
	public void test6(){
//		FileInputStream fis = new FileInputStream(new File("hello.txt"));
//		int b;
//		while((b = fis.read()) != -1){
//			System.out.println((char)b);
//		}
//		fis.close();
	}
	
	//常見的執行時異常
	/*
	 * Bank bank = new Bank();
	 * Customer[] customers = new Customer[5];
	 * customers[0] = new Customer();
	 * System.out.println(customers[0].getFirstName());可能出現空指標異常
	 * customers[0].setAccount(new Account(200));
	 * customers[0].getAccount().withdraw(100);可能出現空指標異常
	 */
	//4.空指標異常:NullPointerExcetion
	@Test
	public void test5(){
//		Person p = new Person();
//		p = null;
//		System.out.println(p.toString());
		
		String str = new String("AA");
		str = null;
		System.out.println(str.length());
	}
	
	//3.型別轉換異常:ClassCastException
	@Test
	public void test4(){
		Object obj = new Date();
		String str = (String)obj;
		
		//String str1 = (String)new Date();
	}
	
	//2.算術異常:ArithmeticException
	@Test
	public void test3(){
		int i = 10;
		System.out.println(i / 0);
	}
	
	//1.陣列下標越界的異常:ArrayIndexOutOfBoundsException
	@Test
	public void test2(){
		int[] i = new int[10];
		//System.out.println(i[10]);
		System.out.println(i[-10]);
	}
	
	@Test
	public void test1(){
		Scanner s = new Scanner(System.in);
		int i = s.nextInt();
		System.out.println(i);
	}
}
class Person{
	
}