Ловля каждого исключения в Java веб-приложения EE

Поскольку почти все случаи, в зависимости от библиотеки или метапрограммирования для депрекации являются излишеством. Просто добавьте комментарий к rdoc и звоните Kernel#warn метод. Например:

class Foo
  # DEPRECATED: Please use useful instead.
  def useless
    warn "[DEPRECATION] `useless` is deprecated.  Please use `useful` instead."
    useful
  end

  def useful
    # ...
  end
end

, Если Вы используете Двор вместо rdoc, Ваш комментарий документа должен быть похожим на это:

# @deprecated Please use {#useful} instead

Наконец, если Вы придерживаетесь tomdoc, заставляют Ваш комментарий быть похожим на это:

# Deprecated: Please use `useful` instead

Устаревший: Указывает, что метод удерживается от использования и будет удален в будущей версии. НЕОБХОДИМО использовать это для методов документа, которые были Открыты, но будут удалены в следующей основной версии.

кроме того, не забывают удалять устаревший метод в некотором будущем (и правильно semver 'd) выпуск . Не делайте те же ошибки, которые сделали библиотеки Java.

6
задан Arjan Tijms 29 November 2012 в 22:49
поделиться

4 ответа

Я нашел решение. Добавив фильтр ответов и обернув chain.doFilter (req, resp) следующим образом:

try {
    chain.doFilter(req,resp);
} catch (Exception e) {
    logger.error("", e);
    throw new RuntimeException(e);
}

Пока это работает нормально и не зависит от конкретной платформы или сервера приложений.

3
ответ дан 17 December 2019 в 07:07
поделиться

Я ничего не знаю о Servlet API, чтобы выполнить это.

Однако это можно сделать в Tomcat с помощью прослушивателя экземпляра. Вы можете установить прослушиватель в context.xml следующим образом:

<InstanceListener>myapp.MyListener</InstanceListener>

Tomcat запускает событие InstanceEvent.AFTER_SERVICE_EVENT сразу после того, как контейнер перехватывает исключение и прежде, чем он снова вызовет исключение. Вы можете сразу же вызвать регистратор.

1
ответ дан 17 December 2019 в 07:07
поделиться

Поправьте меня если я ошибаюсь, но объект "исключение" присутствует как переменная ... называется "исключение" в вашем jsp-файле "error". Вы всегда можете использовать этот объект для регистрации в журнале информации об исключении и входа в саму ошибку jsp.

0
ответ дан 17 December 2019 в 07:07
поделиться

AOP (Аспектно-ориентированное программирование) было бы моим первым выбором.

Вы определяете:

  • точку соединения (генерируется исключение времени выполнения).
  • advice (ваш код для регистрации исключения).
  • точечные сокращения (какие части ваших приложений «слушают» этот аспект).

Взгляните на http://www.aspectj.org/

0
ответ дан 17 December 2019 в 07:07
поделиться
Другие вопросы по тегам:

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