Как обрабатывать исключения в веб-приложениях Java? - PullRequest
2 голосов
/ 06 апреля 2011

Я хотел бы обработать свои исключения, чтобы предупредить пользователя об ошибках, которые произошли.

Что я знаю, это что-то вроде:

servlet.java
private void registerUser(...){
    ...
    try{
        DAOUser daoUser = new DAOUser();
        daoUser.insert(user);
    catch(HibernateException he){
        ...
    }

DAOUser.java
public void insert(User user) throws HibernateException {
  ...
}

Это лучший подход? Если нет, что бы вы предложили?

С уважением, Вальтер Энрике.

Ответы [ 2 ]

7 голосов
/ 06 апреля 2011

Исключение может быть обработано различными способами.В этом случае создается впечатление, что исключение приводит к уведомлению пользователя или сообщению об ошибке.

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

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

Вы должны знать, где перехватывать исключения, где их генерировать и где регистрировать.Здесь первое, что я хотел бы предложить, это не делать оба, бросать и регистрировать.Если вы считаете, что логирование уместно, не бросайте его.Если вы считаете, что метание является уместным, не регистрируйте его.Если вы последуете этим путем, вы автоматически узнаете, какой из них вам нужен, а какой бросить.Это не значит, что некоторые исключения исчезнут без регистрации.Метод, который не бросает это дальше, несет ответственность за регистрацию этого.

Другая вещь - это знать, где использовать проверенное исключение и где использовать среду выполнения.По крайней мере, методы, которые генерируют исключения во время выполнения, несколько проще в использовании.Но это не означает, что вы всегда должны использовать исключения времени выполнения.Ну, это тоже зависит.

Надеюсь, вы меня поняли.

2 голосов
/ 06 апреля 2011

Что ж, лучшим способом было бы

  • Первая служба изоляции / DAO / Контроллер / Просмотр слоев.
  • Бросить исключение из службы, обработать его в контроллере и действовать соответствующим образом.

Наша вики-страница сервлета прекрасно продемонстрировала сообщение об ошибке

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...