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

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

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 を繰り返し記述する必要がなくなります

いいねを押す +0
PHPzhong

例外を使用する

いいねを押す +0
左手右手慢动作

ログを残すために、最後のログで問題を説明します。

いいねを押す +0
Ty80

ログを細分化する必要がなく、スタック情報が一目瞭然に印刷されます

いいねを押す +0
PHPzhong

これはシナリオによって異なります。3 番目のケースでは、キャッシュ例外のキャプチャ、DB 切り替えの実行、IO 例外のキャプチャ、修復の実行など、キャプチャされた例外をきめ細かい方法で処理するために、さまざまな例外が個別にキャプチャされます。 4 番目の方法は、例外をラップして一度処理することですが、一部の特定の情報が失われます
私の理解では、非常に多くの例外タイプに分割することは switch-case の拡張であると考えられます

いいねを押す +0
黄舟

これは状況によって異なります。例外を処理する必要がない場合は、例外を直接補充してください。例外を処理する必要がある場合は、補充をキャッチして処理してください。たとえば、例外に対する独自のプロンプト情報を定義できます。

いいねを押す +0
阿神

注意が必要な例外だけをキャッチしてください。他の例外は Exception を使用してキャッチされる可能性があります。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート