Day04
1 異常 Exception
異常會終止程序的運行
try{
}catch{
}finally{
}
1 )try不能單獨寫 後面 要跟 catch{} 或者finally 也可以同時接 finally catch{}
2 )try 中可以放多個語句 如果一個語句發生了異常 不再執行後面的語句 接着執行catch{} finally{} 以及程序 後面的異常
3 )不管有沒有異常都會去執行的塊 不管方法有沒有結束 finally 都會是最後執行的
4)如果沒有異常 就不會走try
5) 可以有多個catch() 出現異常後 不再執行try後面的語句 如果異常發生而沒有 catch () 或者catch( )沒有匹配上就不會執行後面的程序了
6)無論 try 中是否發生異常 是否有return 是否在catch()中得到處理 finally都會執行一般最後執行
7) catch{}應該有相應的異常類型 可以有多個catch() (從小到大來排列的)先捕獲小的再捕獲大的 執行時 只匹配第一個
8)try catch finally 可以套用 可以嵌套在另一個 try catch() finally 任意部分中 可重新拋出異常
9) JDK1.7 增加的新特性
在異常捕獲機制中支持自動關閉操作 主要解決異常捕獲機制中對io流的自動關閉
try(需要關閉流的聲明){
}catch(){
10) 區分final finally finalize()
final 常量修飾符 finally 異常捕獲裏要執行的 finalize () gc 自動調用的 一般需要重寫該方法 object內中的
2 異常的分類
經常出現的錯誤(RuntimeExption 或者其子類)不用catch 由系統自動處理 (用戶不必對其處理)程序會中斷
檢查異常必須要處理 要麼拋出去 要麼catch() 得
自定義的異常用來說明業務邏輯的錯誤
3 Throw 和 Throws
throw 用於拋出異常 手動拋出異常 (可以是系統定義的異常類 也可以是自定義的異常)除了RuntimeException()及其子類異常不用 聲明有異常拋出外,其他的拋出的異常一定要聲明有異常拋出
throw 一旦被執行 它後面的語句就不再執行了 而它所在的方法也不會再返回有意義的值了可以有多條但最後執行一條 一般放在判斷語句中
一般自己拋出的異常可以自己捕獲做一些前期的處理 catch (throw e); 可以再拋異常那個方法調用此方法就由那個方法來處理
throws 用於聲明有異常拋出
重寫方法需要拋出與原方法所拋出異常類型一致異常或者不拋出異常 如果父類有多個異常 則可以拋出父類方法異常類的一個子集
可以拋出父類方法拋出的異常的子類異常(不能拋父類異常的父類型不能比他大)
子類不能拋出新的異常,和比父類異常還大的異常
4)e 中的常用的方法 printStactTrice () getMessage();