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