エラー処理の設計方法に関する一般的な質問があります。コードでサードパーティのサービスを使用したいと考えています。通常、サービスをクライアント クラス内にラップします。次に、コードの残りの部分はクライアント クラスのみを処理し、フックの下の実際のサービスを認識しません。私のクライアント クラスには、エラーをログに記録するメカニズムがあります。ただし、サービスからの例外をキャッチして処理する必要はありません。理想的には、例外処理を無視して、例外を外部に伝播させる必要があります。ただし、例外をログに記録したい場合は、次のようにする必要があります。
try{
.... // call 3rd party service;
}catch(Exception e){ // e is triggered from the service;
Log.error("Oops, an error: " + e); // shall I log the exception??
throw e; // don't swallow the exception;
}
一方で、私はこれをしたくありません。例外の処理とログは無視できます。クライアント クラスの呼び出し元が例外を処理したり、エラーをログに記録したりします。問題は、いつ例外をログに記録する必要があり、いつログに記録しないのかということです。いくつかの一般的な慣行と原則を聞きたいです。ありがとうございました。