Java Exception

1:異常
(1)程序出現的不正常的情況。
(2)異常的體系
Throwable:
getMessage()
toString()
printStacktrace()
printStacktrace(PrintStream ps)

		|--Error	嚴重問題,我們不處理。
		|--Exception
			|--RuntimeException	運行時異常,我們需要修正代碼
			|--非RuntimeException 	編譯期異常,必須處理的,否則程序編譯不通過
(3)異常的處理:
	A:JVM的默認處理
		異常發生的線程,把異常的名稱,原因,位置等信息輸出在控制檯,但是呢程序不能繼續執行了。
	B:自己處理
		a:try...catch...finally
			自己編寫處理代碼,後面的程序可以繼續執行
		b:throws
			把自己處理不了的,在方法上聲明,告訴調用者,這裏可能有問題
(4)面試題
	A:編譯期異常和運行期異常的區別?
		編譯期異常 必須顯示處理的,否則編譯不通過
		運行期異常 可以不處理,也可以處理
	B:throw和throws是的區別
		throw:
			在方法體中,後面跟的是異常對象,並且只能是一個
			throw拋出的是一個異常對象,說明這裏肯定有一個異常產生了
		throws:
			在方法聲明上,後面跟的是異常的類名,可以是多個
			throws是聲明方法有異常,是一種可能性,這個異常並不一定會產生
(5)finally關鍵字及其面試題
	A:finally用於釋放資源,它裏面的代碼無論異常是否發生,都會被執行。特殊情況:在執行到finally之前jvm退出了。System.exit(0)
	B:面試題
		a:final,finally,finalize的區別?
		b:如果在catch裏面有return,請問finally還執行嗎?如果執行,在return前還是後。
			會。中間。
	C:try...catch的變形
		try...catch...finally
		try...catch...
		try...catch...catch...
		try...catch...catch...fianlly
		try...finally
(6)自定義異常
	繼承自Exception或者RuntimeException,只需要提供無參構造和一個帶參構造即可.
(7)異常的注意事項(編譯期異常)
	A:父的方法有異常拋出,子的重寫方法在拋出異常的時候必須要小於等於父的異常 
	B:父的方法沒有異常拋出,子的重寫方法不能有異常拋出
	C:父的方法拋出多個異常,子的重寫方法必須比父少或者小

	結論:兒子不能比父親更壞。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章