Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / нововведения jdk 7 для обработки исключений / 24 сообщений из 24, страница 1 из 1
29.03.2013, 22:01:39
    #38205076
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
Вычитал в книге, что в 7 java 3 нововведения относительно обработки исключений.
try с ресурсами
multicatching
и нечто названное окончательным или более точным повторным генерированием исключений.

Объясните последнее пожалуйста.
...
Рейтинг: 0 / 0
29.03.2013, 22:11:21
    #38205082
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
redwhite90Вычитал в книге, что в 7 java 3 нововведения относительно обработки исключений.
try с ресурсами
multicatching
и нечто названное окончательным или более точным повторным генерированием исключений.

Объясните последнее пожалуйста.
Вроде бы речь о том, что в блоке catch можно создавать(бросать) только определенный тип исключений.
...
Рейтинг: 0 / 0
29.03.2013, 22:16:26
    #38205087
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
...
Рейтинг: 0 / 0
29.03.2013, 22:30:53
    #38205101
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
redwhite90,
возможность объявлять несколько исключений в одном блоке catch
Было
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
try{
  ...
}catch(IllegalStateException e){
  logger.error(e.getMessage(), e);
}catch(SQLException e){
  logger.error(e.getMessage(), e);
}catch(ContextException e){
  logger.error(e.getMessage(), e);
}


Стало

Код: java
1.
2.
3.
4.
5.
try{
  ...
}catch(IllegalStateException | SQLException | ContextException e){
  logger.error(e.getMessage(), e);
}
...
Рейтинг: 0 / 0
29.03.2013, 22:31:12
    #38205103
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
rdm,

http://programador.ru/java-7-last-coin/
я даже по русски что-то не вкурил в чем сахар то.
...
Рейтинг: 0 / 0
29.03.2013, 22:36:05
    #38205107
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
Blazkowiczredwhite90,
возможность объявлять несколько исключений в одном блоке catch
Было
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
try{
  ...
}catch(IllegalStateException e){
  logger.error(e.getMessage(), e);
}catch(SQLException e){
  logger.error(e.getMessage(), e);
}catch(ContextException e){
  logger.error(e.getMessage(), e);
}


Стало

Код: java
1.
2.
3.
4.
5.
try{
  ...
}catch(IllegalStateException | SQLException | ContextException e){
  logger.error(e.getMessage(), e);
}



это же multicatching

а Rethrowing Exceptions with More Inclusive Type Checking вот это что такое
...
Рейтинг: 0 / 0
29.03.2013, 22:38:38
    #38205112
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
redwhite90rdm,

http://programador.ru/java-7-last-coin/
я даже по русски что-то не вкурил в чем сахар то.
я думаю уважаемый Blazkowicz правильно объяснит)

Я понимаю это следующим образом:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
public void rethrowException(String exceptionName) throws FirstException, SecondException {
    try {
      if (exceptionName.equals("First")) {
        throw new FirstException();
      } else {
        throw new SecondException();
      }
    } catch (Exception e) {
      //Компилятор определит класс исключения, если класс соответствует классу объявленному после throws, то бросит этот же    тип исключения, иначе будет брошено исключение базового класса для объявленных типов после throws. Т.е. не нужно после throws писать еще Exception.
    
      throw e;
     

    }
  }
...
Рейтинг: 0 / 0
29.03.2013, 22:48:52
    #38205117
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
Только видимо это лишнее)
rdm иначе будет брошено исключение базового класса для объявленных типов после throws. Т.е. не нужно после throws писать еще Exception.
...
Рейтинг: 0 / 0
29.03.2013, 22:49:47
    #38205119
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
Действительно, мнение Blazkowicz будет весьма интересно.
...
Рейтинг: 0 / 0
29.03.2013, 23:06:42
    #38205129
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
redwhite90Действительно, мнение Blazkowicz будет весьма интересно.
Sorry, не понял сразу, так как последне в списке по-русски.
Пример rdm привел правильный. Объяснил не точно.
При re-throw существующего исключения
Код: java
1.
2.
3.
catch(Exception e){
  throw e;
}


Раньше компилер проверял что объявлено в catch, и это же исключение требовал ловить, или объявлять в сигнатуре метода.

В 7ке компилер проверяет не то что у нас объявлено в catch, а то что вообще бросается в блоке try. То есть, например, если в try у нас может быть только IOException, но мы кэтчим его как Exception и пробрасываем, то по факту у нас там всё тот же IOException. И компилятор это учитывает.
...
Рейтинг: 0 / 0
29.03.2013, 23:14:39
    #38205138
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
BlazkowiczРаньше компилер проверял что объявлено в catch, и это же исключение требовал ловить, или объявлять в сигнатуре метода.

В 7ке компилер проверяет не то что у нас объявлено в catch, а то что вообще бросается в блоке try. То есть, например, если в try у нас может быть только IOException, но мы кэтчим его как Exception и пробрасываем, то по факту у нас там всё тот же IOException. И компилятор это учитывает.

Вроде бы еще подклассы читываются, т.е.
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
class AException extends Exception {}
class BException extends AException {}

public void ....() throws AException

try {

throw BException();

} catch(Exception e) {

 throw e;
}

Будет брошено AException, верно?
...
Рейтинг: 0 / 0
29.03.2013, 23:25:17
    #38205145
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
rdm,

при чем тут "будет брошено"? Фича касается исключительно проверок во время компиляции, а не того что будет происходить в рантаймер.
...
Рейтинг: 0 / 0
29.03.2013, 23:27:27
    #38205148
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
Blazkowiczrdm,

при чем тут "будет брошено"? Фича касается исключительно проверок во время компиляции, а не того что будет происходить в рантаймер.
Перефразируя, компиляция состоится? )
...
Рейтинг: 0 / 0
29.03.2013, 23:34:44
    #38205153
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
rdmПерефразируя, компиляция состоится? )
Конечно:
BException extends AException
Как и до Java 7, если бросается BException, то можно объявлять или ловить AException. В этом вопросе ничего не поменялось.
...
Рейтинг: 0 / 0
29.03.2013, 23:37:25
    #38205158
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
В общем кто пользовался умными IDE не почувствует разницы)
...
Рейтинг: 0 / 0
29.03.2013, 23:51:06
    #38205169
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
BlazkowiczrdmПерефразируя, компиляция состоится? )
Конечно:
BException extends AException
Как и до Java 7, если бросается BException, то можно объявлять или ловить AException. В этом вопросе ничего не поменялось.
Ой точно)
...
Рейтинг: 0 / 0
29.03.2013, 23:56:33
    #38205174
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
там ещё что-то написано про final в таких случаях...
...
Рейтинг: 0 / 0
30.03.2013, 00:05:42
    #38205176
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
redwhite90там ещё что-то написано про final в таких случаях...
Точно, тут информация есть, но я что-то не понял https://blogs.oracle.com/darcy/entry/project_coin_multi_catch_rethrow
...
Рейтинг: 0 / 0
30.03.2013, 00:38:21
    #38205189
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
rdm,

ждём Blazkowicz)
...
Рейтинг: 0 / 0
30.03.2013, 00:54:11
    #38205198
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
redwhite90rdm,

ждём Blazkowicz)
как обычно)
...
Рейтинг: 0 / 0
30.03.2013, 16:23:44
    #38205467
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
в 7 case по string работает.....
...
Рейтинг: 0 / 0
30.03.2013, 20:22:41
    #38205641
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
вадя,

мы тут немножко про другое)
...
Рейтинг: 0 / 0
30.03.2013, 21:10:11
    #38205664
rdm
rdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
redwhite90вадя,

мы тут немножко про другое)
Может это не попало в 7-ку? http://stackoverflow.com/a/6889301/1319419
...
Рейтинг: 0 / 0
30.03.2013, 22:40:32
    #38205716
redwhite90
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
нововведения jdk 7 для обработки исключений
rdm,

есть подозрение, что оно по дефолту финальное. это на самом деле логично, иначе вся эта схема перестала бы работать.
ну то есть наверное пиши хоть с final хоть без - будет то же самое.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / нововведения jdk 7 для обработки исключений / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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