JAVA 異常處理
1、異常:就是程式執行時出現不正常情況
異常由來:問題也是現實生活中一個具體的事物,也可以通過java的類的形式進行描述。並封裝成物件。其實就是java對不正常情況進行描述後的物件體現。
對於問題的劃分(兩種):一種是嚴重的問題,一種是非嚴重的問題;
對於嚴重的,java通過Error類進行描述。
對於Error一般不編寫針對性的程式碼對其進行編寫
對於非嚴重的,java通過Exception類進行描述。
對於Exception可以使用針對性的處理方式進行處理
無論Error還是Exception都具有一些共性內容
Throwable
- |-Error
- |-Exception
—— |-RuntimeException
2、異常的處理
java 提供了特有語句進行處理。
try{
需要被檢測的程式碼
}
catch(異常類 變數){
處理異常的程式碼,處理方式
}
finally{
一定會執行的語句
}
3、對捕獲到的異常物件常見方法操作
String getMessage( ):捕獲異常資訊。
在函式上宣告,讓呼叫出進行處理,不處理則編譯失敗。
對多異常的處理
1、宣告異常時,建議宣告更為具體,這樣處理的可以更具體。
2、對方宣告幾個異常,就對應有幾個catch塊,不要定義多餘的catch塊。
如果多個catch塊中的異常出現繼承關係,父類異常catc塊放在最下面。
建議:
在進行catch處理時,catch中一定要定義具體處理方式,也不要簡單的就寫一條輸出語句。
<自定義異常>
當在函式內部出現了throw丟擲異常物件,那麼就必須要給對應的處理動作:
要麼在內部try catch處理,要麼在函式上宣告讓呼叫者處理。
一般情況在函式內部出現異常,函式上需要宣告。
發現列印的結果中只有異常的名稱,卻沒有異常的資訊,那麼如何定義異常資訊呢?
因為父類中已經把異常資訊的操作都完成了,所以子類只要在構造時,將異常資訊傳遞給父類通過super語句,那麼
就可以直接通過getMessage方法獲取自定義的異常資訊。
自定義異常:
定義類繼承Exception或者RuntimeException
1、為了讓該類自定義類具備可拋性。
2、讓該類具備操作異常的共性方法。
當要定義自定義異常的資訊時,可以使用父類已經定義好的功能。
class MyException extends Exception
{
MyException(String message)
{
super(message);
}
}
throw和throws的區別:throw使用在函式上,throws使用在函式內。throws後面跟的異常類,可以跟多個,用“ ,”隔開
throw後跟的是異常物件。
當函式內容有throw丟擲異常物件,並未進行try處理,必須要在函式上宣告,都在編譯失敗。
注意:RuntimeException除外,也就是說,函式內如果丟擲的RuntimeException異常,函式可以不用宣告。
如果函式宣告瞭異常,呼叫者需要進行處理,處理方法可以throws,可以try。
finaly{ } //存放的是一定對被執行的程式碼 通常用於關閉資源。finally中定義的通常是 關閉資原始碼。因為資源必須釋放。
finally只有一種情況不會執行,當執行到System.exit(0);finally不會執行。
異常處理語句:
1、
try
{
需要被檢測的程式碼;
}
catch( )
{
處理異常的程式碼;
}
2、
try
{
}
finally
{
}
3、
try
{
需要被檢測的程式碼;
}
catch( )
{
處理異常的程式碼;
}
finally
{
一定會執行的程式碼;
}
異常的好處:1、將問題進行封裝
2、將正常流程程式碼和問題處理程式碼相分離,方便於閱讀。
異常的處理原則:
1、處理方式有兩種:try 或者throws;
2、呼叫到丟擲異常的功能時,丟擲幾個,就處理幾個。
一個try對應多個catch。
3、多個catch,父類的catch放到最下面。
4、catch內,需要定義針對性的處理方式,不要簡單的定義printStackTrace,輸出語句。
try{
throw new AException( );
}
catch( AException e){
throw e;
}
異常的注意事項:
在子父類覆蓋時:
1、子類丟擲的異常必須是父類的異常的子類或者子集;
2、如果父類或者介面沒有異常丟擲時,子類覆蓋出現異常,只能try不能拋。
相關文章
- Java 異常處理Java
- JAVA異常處理Java
- JAVA_異常處理Java
- Java 異常表與異常處理原理Java
- Java異常處理(非常全面)Java
- Java異常處理機制Java
- 重學Java - 異常處理Java
- java異常處理筆記Java筆記
- 異常篇——異常處理
- Java 的異常處理機制Java
- Java之異常處理try{}catch(){}Java
- Java進階02 異常處理Java
- JAVA學習之異常處理Java
- java異常的處理機制Java
- Java 異常處理:使用和思考Java
- 異常處理
- Java異常處理12條軍規Java
- Java入門教程十一(異常處理)Java
- 甩鍋(throws)_ java異常(Exception)處理JavaException
- Java 中的異常處理機制Java
- [轉載] Java異常處理習題Java
- JSP 異常處理如何處理?JS
- 異常-throws的方式處理異常
- React 異常處理React
- JS異常處理JS
- oracle異常處理Oracle
- Python——異常處理Python
- Python異常處理Python
- ThinkPHP 異常處理PHP
- JavaScript 異常處理JavaScript
- 異常的處理
- golang - 異常處理Golang
- 異常處理2
- 異常處理1
- Abp 異常處理
- 08、異常處理
- SpringMVC異常處理SpringMVC
- 異常處理機制(二)之異常處理與捕獲