java 異常詳解

2021-06-25 22:00:14 字數 1419 閱讀 6316

(一)異常機制出現的原因

異常處理能提公升程式的健壯性,c語言中是通過函式返回值來處理異常的,這種做法的弊端:

1.返回值與現有邏輯可能衝突。

2.**可讀性差。執行**和異常處理**混淆在一起。

3.需了解函式返回值詳細資訊,以做處理。

/**

* 異常處理demo

* * @author peter_wang

* @create-time 2014-9-24 上午9:24:35

*/public class exceptiondemo

else

}private static int operatenum(int num)

num = 10 / num;

num -= 3;

return num;}}

(二)異常分類

系統級錯誤(error):如記憶體消耗完,通常情況下不需要理會。

編譯時錯誤:這種異常必須在**裡被顯示的捕獲語句包住,否則編譯不過,如filenotfoundexception。

執行時錯誤:**不規範產生的錯誤,出現錯誤需要程式設計師更改bug,如空指標異常和陣列下標越界。

(三)異常的使用

1.不要忽略異常

try 

catch (exception e)

不處理異常,違背了異常設計的初衷,程式出錯難以找到錯誤原因。

2.不要把邏輯性較強的**分離

fileinputstream is = null;

try

catch (filenotfoundexception e)

try

catch (ioexception e)

異常捕捉分離了邏輯較強的**,可讀性變差。應採用如下**

fileinputstream is = null;

try

catch (filenotfoundexception e)

catch (ioexception e)

3.能處理的異常不向上傳遞

對異常的處理有兩種方式:自己處理catch和向上傳遞throw。

向上傳遞代表了太多未知,能處理的自己處理,除非事先知道該資訊需要上層處理才傳遞。

4.io異常處理

如果使用了一些資源例如資料庫連線或者網路連線,記住在finally中做一些清理工作(如關閉資料庫連線或者網路連線)。

5.不要全部用exception來捕捉異常

細化異常型別,能有利於處理和錯誤資訊捕捉。

java 異常 詳解

1 異常 理解 1 程式出現的不正常的情況。2 異常的體系 throwable error 嚴重問題,我們不處理。exception runtimeexception 執行期異常,我們需要修正 非runtimeexception 編譯期異常,必須處理的,否則程式編譯不通過 3 異常的處理 a jvm...

java詳解 異常處理

異常處理是繼承throwable的子類,有兩種 error 和 exception.error是系統崩潰或者資料庫崩潰,和 的編寫沒有關係.exception是和 有關係的,是一種異常.1.出現異常系統解決的辦法 以main函式為例 有兩種方式 main函式自己解決 把問題拋給上級去解決 誰呼叫ma...

java異常三(異常工廠)

在我們想要捕獲乙個異常時,往往需要更多的異常資訊。這時,我們可以將錯誤資訊儲存在單獨的errorinfo物件中,當異常傳播到呼叫堆疊時,的上層可以errorinfo 向錯誤新增其他物件。errorinfo是儲存異常資訊的模板類,如下 public class errorinfoerrorinfo呼叫...