java-ee - 关于Java异常捕获的问题
PHPz
PHPz 2017-04-18 09:51:10
0
7
418

如果捕获异常没有专门的处理,只是为了记录日志,那么异常究竟是这样

public void xxx() {
    try {
        ...
        ...
        ...
    } catch() {
        ...
    }
}

捕获好还是这样

public void xxx() {
    try {
        ...
    } catch() {
        ...
    }
    try {
        ...
    } catch() {
        ...
    }
    try {
        ...
    } catch() {
        ...
    }
}

捕获好,另外,是每一种异常单独捕获

public void xxx() {
    try {
        ...
        ...
        ...
    } catch(aaException e) {
        ...
    } catch(bbException e) {
        ...
    } catch(Exception e) {
        ...
    }
}

好,还是全部都用Exception捕获

public void xxx() {
    try {
        ...
        ...
        ...
    } catch(Exception e) {
        ...
    }
}

好?

PHPz
PHPz

学习是最好的投资!

全部回覆(7)
伊谢尔伦

比較優雅的方式是透過Aop去處理,這樣就不用在商業程式碼裡寫重複的try,catch

PHPzhong

用Exception好

左手右手慢动作

只是為了記日誌,最後一種就能夠說明問題所在了。

Ty80

記錄日誌就沒必要細分了,列印堆疊資訊一目了然

PHPzhong

這得根據場景來決定:第三種情況,不同異常分開捕捉,是為了細粒度地處理捕獲到的異常,比如捕捉到了緩存異常,進行db切換,捕捉到了IO異常,進行補救等;第四種是包一個Exception,總的處理一次,但是會丟失一些具體的信息
我的理解,分這麼多異常類型可以認為是switch-case的一種延伸

黄舟

這個要看情況的,如果自己不需要對異常進行處理,那就直接低層補貨exception就可以,如果需要處理就catch補貨一下處理。例如異常自己定義提示訊息。

阿神

把你需要的關注的異常捕獲就好了,其他的異常可能用Exception來捕獲。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板