У меня есть две статьи, которые я использую в качестве основы для обработки исключений:
Я также связываю этичасто, когда я замечаю ошибки обработки исключений.
FileNotFound явно является экзогенным исключением, поэтому правильно его перехватить. Однако эти статьи также говорят, что, как правило, всегда регистрируют или выставляют эти исключения. В идеале результат Exception.ToString (). Если у вас нет способа сослаться на пойманное исключение, как вы можете сделать одно из этих двух? Вы можете дать только общее сообщение об ошибке, но с ни одна из деталей вам не понадобится для его отладки .
В то время как во многих случаях вам нужно только выставить тип Exception для пользователь , нет ни одного, где вы бы хотели log Тип исключения. В связанных статьях упоминается об этом явно, но из-за отрицательных голосов и комментариев мне кажется необходимым повторить это.
Так что это один из тех случаев, когда аргумент все еще идет, если это ошибка или функция .
Для меня это определенно больше похоже на особенность. Я бы наверняка назвал вас потенциальной проблемой, если бы увидел это в вашем коде. Это позволяет избежать недогрузки. Вы можете проверить, сохраняется ли ошибка, если вы напишите throw;
в конце блока catch. Это перезапустит исключение, поэтому отсутствие возможности ссылаться на исключение в этом ExceptionHandler не будет критическим.