Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Использование Exception в коде. / 10 сообщений из 10, страница 1 из 1
05.02.2013, 11:52:20
    #38137631
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Exception в коде.
Господа
Как-то до конца не смог понять, допустимо ли в коде использовать Exception в таком виде

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
public class ApplicationException extends Exception
{
     public ApplicationException(String message)
    {
        super(message);
    }
}

public class My1
{
   public static void method1() throws ApplicationException
   {
       .....
    }
}

public class My2
{
   String messageForPage;
   public void method2()
   {
       try
       {
          My1.method1()
       }
       catch(ApplicationExcption e)
       {
           messageForPage = e.getMessage();  
        }
    }
}



То есть внутри метода например в сервисах бросать его, а на уровне контроллера странички вытаскивать из него сообщение в блоке catch и рисовать на странице. Можно так делать?
...
Рейтинг: 0 / 0
05.02.2013, 12:05:14
    #38137664
SergeyAKa
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Exception в коде.
osonГоспода
Как-то до конца не смог понять, допустимо ли в коде использовать Exception в таком виде

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
public class ApplicationException extends Exception
{
     public ApplicationException(String message)
    {
        super(message);
    }
}

public class My1
{
   public static void method1() throws ApplicationException
   {
       .....
    }
}

public class My2
{
   String messageForPage;
   public void method2()
   {
       try
       {
          My1.method1()
       }
       catch(ApplicationExcption e)
       {
           messageForPage = e.getMessage();  
        }
    }
}



То есть внутри метода например в сервисах бросать его, а на уровне контроллера странички вытаскивать из него сообщение в блоке catch и рисовать на странице. Можно так делать?


Можно. В принципе я всю обработку ошибок именно на этом и строил. не люблю возвращать всякие коды в методах.
Хотя, я не показатель, т.к. многие бывшие сишники именно возврат кодов используют.
Если память не изменяет, то так в свое время делал
Код: java
1.
   throw new ApplicationException("бла бла бла");
...
Рейтинг: 0 / 0
05.02.2013, 12:16:36
    #38137689
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Exception в коде.
По-моему тут стоит рассмотреть что же вкладываем в ApplicationException. Если это файл юзера, то нужно ему внятно и доступно объяснить в чем проблема, с локализацией текста ошибки и, возможно, ссылкой на help/FAQ и т.п.
Если это какой-то неожиданный фейл самой программы, то юзеру оно нафиг не нужно. Такое исключение надо отловить каким-то общим handler-ом и отправить в админу\в саппорт мылом, с полным stacktrace и любой полезной дополнительной информацией (Например дампом запроса).
...
Рейтинг: 0 / 0
05.02.2013, 12:44:08
    #38137752
mesier
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Exception в коде.
oson То есть внутри метода например в сервисах бросать его, а на уровне контроллера странички вытаскивать из него сообщение в блоке catch и рисовать на странице. Можно так делать?

Конечно..
Только, как верно заметил SergeyAKa , исключение сервисметод должен таки бросить. Иначе откуда бы ему взяться..
В контроллере отлавливаем ApplicationException с целью сообщить юзверю application specific информацию, а также дополнительно обрабатываем Exception на всякие другие случаи, дескать "У нас тут эпик фэйл, но мы уже устраняем, если ошибка повторится, обратитесь к Одминго".. )
...
Рейтинг: 0 / 0
05.02.2013, 13:54:07
    #38137931
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Exception в коде.
mesier,
вроде 80 процентов сабжа уже декларативно в Java обрабатывается? В том числе аннотациями?
...
Рейтинг: 0 / 0
05.02.2013, 13:54:47
    #38137933
oson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Exception в коде.
Ну я для этого делаю такие исключения в системе - свои именно

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public class ApplicationException extends Exception 
{
    public ApplicationException(String message)
    {
        super(message);
    }

    public ApplicationException(String message, Throwable cause)
    {
        super(message, cause);
    }
}


и

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
public class SystemException extends RuntimeException
{
    public SystemException()
    {
    }

    public SystemException(String message)
    {
        super(message);
    }

    public SystemException(String message, Throwable cause)
    {
        super(message, cause);
    }

    public SystemException(Throwable cause)
    {
        super(cause);
    }
}



Первый для юзера. То есть именно в него помещаю ошибку в движке< а на уровне view вытягиваю ее и показываю в виде message пользователю.
А второй класс - именно для ошибок в системе, например две зщаписи в базе когда должна быть только одна и тп.
SystemException расширяет RuntimeException, то есть перехватывать его не надо.
Что по поводу такого подхода скажете?
...
Рейтинг: 0 / 0
05.02.2013, 13:59:56
    #38137946
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Exception в коде.
oson,
чтобы не было велосипедом, начни с уже готового.
- для транзакций - откат на райзе
- для ГУИ - готовая библиотека подсвечивающая КОНТРОЛ с ошибкой и сообщением (Blazkowicz )
...
Рейтинг: 0 / 0
05.02.2013, 15:23:05
    #38138138
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Exception в коде.
Petro123
ты, как обычно, ничего не понял. он спрашивает можно ли внутрь исключения засовывать сообщение об ошибке, предназначенное для пользователя, и пробросить его внутри исключения туда, где оно будет показано пользователю.
...
Рейтинг: 0 / 0
05.02.2013, 16:23:34
    #38138287
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Exception в коде.
chpasha,
ты как обычно, ничего не понял, и самое главное - не ответил))
Учись у Blazkowicz - "ситуации бывают разные".
...
Рейтинг: 0 / 0
05.02.2013, 17:33:14
    #38138535
chpasha
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Использование Exception в коде.
Petro123ты как обычно, ничего не понял, и самое главное - не ответил))

ой, он обиделся.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Использование Exception в коде. / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]