如果捕获异常没有专门的处理,只是为了记录日志,那么异常究竟是这样
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) {
...
}
}
好?
より洗練された方法は、Aop を介して処理することです。これにより、ビジネス コードで try と catch を繰り返し記述する必要がなくなります
例外を使用する
ログを残すために、最後のログで問題を説明します。
ログを細分化する必要がなく、スタック情報が一目瞭然に印刷されます
これはシナリオによって異なります。3 番目のケースでは、キャッシュ例外のキャプチャ、DB 切り替えの実行、IO 例外のキャプチャ、修復の実行など、キャプチャされた例外をきめ細かい方法で処理するために、さまざまな例外が個別にキャプチャされます。 4 番目の方法は、例外をラップして一度処理することですが、一部の特定の情報が失われます
私の理解では、非常に多くの例外タイプに分割することは switch-case の拡張であると考えられます
これは状況によって異なります。例外を処理する必要がない場合は、例外を直接補充してください。例外を処理する必要がある場合は、補充をキャッチして処理してください。たとえば、例外に対する独自のプロンプト情報を定義できます。
注意が必要な例外だけをキャッチしてください。他の例外は Exception を使用してキャッチされる可能性があります。