Обработка ошибок J2EE - приложение и пользователь

У меня вопрос относительно обработки ошибок в приложении J2EE. Наше текущее приложение используется многими пользователями, и в результате мы получаем много обращений в службу поддержки. Большинство этих заявок связаны с пользователями, но 5-10% - это системные исключения, необработанные ошибки и т. Д.

У нас есть базовые проверки обработки исключений в коде (необходимо работает), но по моему опыту показ общего сообщения пользователю не помогает ускорить процесс устранения неполадок.

Я ищу рекомендацию по хорошему шаблону проектирования обработки ошибок, поэтому давайте рассмотрим сценарий:

  1. Код имеет ошибку
  2. Ошибка обработана
  3. Пользователю отображается сообщение об ошибке нетехнического характера с конкретным кодом ошибки.
  4. Команда, не имеющая отношения к технической поддержке, может использовать этот код ошибки, чтобы увидеть область (страницу, раздел, ..) в приложении, где это произошло, и что мог делать пользователь (информация предварительно указана командой разработчиков в справочном руководстве по поддержке клиентов).
  5. Команда технической поддержки может использовать код для обнуления класса / JSP и т. Д. И строки кода, которая вызвала это исключение.
  6. Мы используем модуль ведения журнала, где большинство (не все) ошибок стандартного вывода Tomcat регистрируются сеансом пользователя ... к коду ошибки, который получит пользователь, мы можем включить идентификатор журнала, если он существует, чтобы техническая команда тоже может взглянуть на это.

В основном меня интересует сокращение цикла поддержки-анализа-объяснения-исследования и предоставления каждому отделу доступа к информации, которая будет у них под рукой, что может помочь им быстрее приступить к работе:

  1. Служба поддержки клиентов может дать стандартное объяснение этого кода ошибки или предложить альтернативные шаги, которые может выполнить пользователь.
  2. Техническая группа могла начать устранение неполадок в строке кода или в том, что делал пользователь, вызвавший эту строку.

Существенно, что каждый код ошибки запускает требуемые следующие шаги для каждого отдела и, по сути, сокращает фазу исследования проблемы и переход к фазе решения.

Я не уверен, что это вообще хорошая идея. Мы будем благодарны за любые предложения о хорошем «шаблоне проектирования» для такой необходимости. Или, если бы это был хороший маршрут, чтобы посмотреть.

Заранее спасибо.

SP


person spie    schedule 07.11.2008    source источник


Ответы (2)


Похоже, вам нужно серьезно подумать о проблемах поддержки для некоторой сортировки кода. По моему опыту, вы почти всегда можете создать «список 10 лучших» пунктов, которые вызывают более 50% проблем с поддержкой. После того, как вы отбили первые 10, еще раз проверьте журналы вызовов. Данные необходимы.

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

Если вы погрязли в ошибках, для которых, по вашему мнению, вам нужно разработать список кодов ошибок / условий, похоже, вашему продукту требуется еще 6 месяцев стабилизации. Вы, вероятно, не разрабатываете ОС, и для 99% проектов разработка IBMesque black book кодов ошибок не является моделью для подражания.

person Niniki    schedule 07.11.2008

Используйте log4j для регистрации всех ошибок и исключений в регистраторе, который отправляет вам информацию по электронной почте. Не беспокойтесь о пользовательских сообщениях; все, что им нужно знать, это то, что произошла ошибка и что она была зарегистрирована.

person davetron5000    schedule 08.11.2008