発生した例外の処理中にエラーが発生した際の対処処理に関して設計指針はありますか?
特に言語に指定があるわけではありませんが, try-catch
でエラーが発生した際、エラーをログとして保存したいとします(下コードのWriteExceptionToLogFile
部)。
try
{
// 例外が発生するソース
}
catch(Exception exception)
{
// エラーをログファイルに書き込み
WriteExceptionToLogFile(exception);
// エラーを表示
DisplayErrorMessageBox("エラーが発生しました!");
}
今までは上コードのようにしてましたが、もしWriteExceptionToLogFile
がエラーを発生させるなどした際の考慮をすると問題が二つあることに気づきました。
WriteExceptionToLogFile
がエラーを発生させると、そこでプログラムが止まるWriteExceptionToLogFile
自身のエラーを知ることができないうえにWriteExceptionToLogFile
により書き込まれるはずだった例外もわからなくなる
catch
節で実行中のロガーがエラーで停止した際の対処方法として、上ふたつの問題を解決できる方法はありますか?それとも、そもそもロガーがエラーを発生しないことを暗黙の了解にしてしまうのでしょうか?