| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Обработка неперхваченных исключений под Tomcat |
| Автор: Maksym 7.1.2006, 19:57 | ||
| В системе возможны необработанные исключения, которые вываливаются на уровень Tomcat и видны пользователю в окне браузера. Хочется, чтобы любая непредвиденная ситуация заставляла Tomcat показать специальную страницу проекта с извинениями, предложением связаться с администрацией и т.п. Как это сделать? В web.xml проекта есть Pages > Error Pages , но добавление туда страниц ничего не дало
все равно исключение видно, на страницу error.jsp система не посылает... Есть еще праметр код ошибки.. может в нем дело..? Большое спасибо. |
| Автор: batigoal 7.1.2006, 20:38 |
| По-моему, у самой страницы еще есть директивы, связанные с обработкой ошибок на ней. В частности, если не ошибаюсь, у error.jsp должен быть прописан атрибут error-page=true или что-то подобное. Во-вторых, возможно, страницу ошибок надо указать непосредственно на каждой странице, но это навряд ли. |
| Автор: batigoal 7.1.2006, 22:58 | ||
Томкат это поддерживает? Я думал, это только средствами веб-сервера можно сделать (апачевскими, например). |
| Автор: onsh76 9.1.2006, 08:54 | ||||||
Поддерживает, вот фрагмент из web.xml file:
У меня вопрос к коллегам. А секьюрно ли показывать содержимое errorStack в errorJsp, как предлагается вот http://weblogs.java.net/blog/crazybob/archive/2004/02/exception_handl.html? Может лучше логировать ошибку и показывать юзеру содержимое generic error page? Кто как делает? |
| Автор: batigoal 9.1.2006, 11:20 |
| У нас обычно выдается короткое сообщение, если ошибку можно идентифицировать (например, ошибка подключения к БД). Если нет - то generic error. Но стек мы не показываем никогда. Зачем его видеть юзеру, который не понимает ничего в программировании? Только пугать зазря. |
| Автор: Stampede 9.1.2006, 11:24 | ||||
Кончно, несекьюрно. Но чувак ведь и не говорит, что ошибку нужно показывать всем подряд:
Так что все нормально. Единственное замечание по этому поводу: я предпочитаю в случае ошибки делать редирект на статическую страницу, и вот из каких соображений. Если при обработке error.jsp в свою очередь возникнет ошибка, то юзер увидит дефолтную страницу ошибки - со всеми адресами и явками, а это уж совсем ни к чему. Так что я все-таки за статику. |
| Автор: Maksym 10.1.2006, 18:46 |
| Stampede Спасибо за подробный ответ. Задание полного имени исключения с пакетами ничего не дала. Указание кода ошибки 500 - отлично работает, причем независимо от того где лежит файл обработки в корне или в любом другом месте проекта, все корректно находится и запускается. В текущей ситуации этого вполне достатчно С обработкой конкретных исключений буду разбираться пока не получается, но это не критично... |