首頁  >  文章  >  Java  >  coverity&fortify1-糟糕的錯誤處理:過於廣泛的捕獲

coverity&fortify1-糟糕的錯誤處理:過於廣泛的捕獲

PHP中文网
PHP中文网原創
2017-07-15 18:12:183648瀏覽

1.警告描述:

  多個catch 區塊看起來既難看又繁瑣,但使用一個「簡約」的catch 區塊捕捉高層級的異常類別(如Exception),可能會混淆那些需要特殊處理的異常,或是捕捉了不應在程式中這一點捕獲的異常。本質上,捕獲範圍過大的異常與「Java 分類定義異常」這一目的是相違背的。


2.風險:

隨著程式的增加而拋出新異常時,這種做法會十分危險。而新發生的異常類型也不會被注意到。

3.範例:

try{
    //IOoperation
    //
}
catch(Exception ex){
    Log(ex);
}

Fortify建議你分別處理可能出現的異常,因為不同類型的異常需要不同的處理方法,所以應該把try{}裡可能出現的異常都枚舉出來,然後分別處理,正確的代碼寫法如下:

try {
    //IOoperation
    //
}
catch (IOException e) {
    logger.error("doExchange failed", e);
}
catch (InvocationTargetException e) {
    logger.error("doExchange failed", e);
}
catch (SQLException e) {
    logger.error("doExchange failed", e);
}

  

以上是coverity&fortify1-糟糕的錯誤處理:過於廣泛的捕獲的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn