Отправка электронного письма, когда Исключение Выдается

Я записал класс Java, где, если метод выдает исключение, электронное письмо послано, через почту Java, с отчетом администраторам.

Это работает - моим вопросом является w.r.t элегантность - для ловли исключения, выданного основным методом, sendEmail (), метод находится в блоке выгоды основного метода. sendEmail () метод имеет свой собственный блок try-catch.

В действительности - это похоже ниже - существует ли более красивый способ записать это?

try {  
    foo;  
}  
catch {  
   try{  
    sendEmail();  
  }  
  catch {  
   log(e.message);  
  }  
}  
5
задан Gilbert Le Blanc 30 May 2010 в 01:56
поделиться

2 ответа

Java может иметь вложенные блоки try / catch.

Если вы хотите, вы можете переместить блок try / catch sendmail в другой метод. Когда блоки try / catch будут более сложными, это облегчит понимание кода.

3
ответ дан 18 December 2019 в 06:49
поделиться

Если вы хотите чего-то "более элегантного", одно простое предложение заключается в том, чтобы ваш вспомогательный метод sendEmail перехватывал и записывал в журнал исключения электронной почты. (Я не думаю, что вы хотите, чтобы исключения распространялись ... или делали какое-то другое восстановление ...)


Однако есть кое-что более важное. То, что вы здесь реализуете, - это неправильный подход к сообщению об ошибках.

  • Если что-то пойдет не так с вашим приложением, есть вероятность, что вы будете заваливать администратора многочисленными письмами с сообщениями об одной и той же проблеме снова, и снова, и снова...

  • Отправляя письма из глубины своего кода, вы затрудняете администратору интеграцию отчетов об ошибках вашего приложения.

Лучшим подходом является сообщение о проблеме через Java-фреймворк регистрации, такой как Log4J. Если администратор захочет, он/она может настроить какую-либо систему мониторинга, например LogWatch, Nagios и т.д. и т.п. Такая система мониторинга будет обнаруживать и классифицировать ошибки, аномалии и т.д. (например, ошибки вашего приложения) в различных потоках логгеров, дедуплицировать их и если администратор настроит ее, отправлять уведомление по электронной почте, на пейджер или еще куда-нибудь.

20
ответ дан 18 December 2019 в 06:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: