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

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

Объясните последнее пожалуйста.
Вроде бы речь о том, что в блоке catch можно создавать(бросать) только определенный тип исключений.
...
Рейтинг: 0 / 0
нововведения jdk 7 для обработки исключений
    #38205087
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
нововведения jdk 7 для обработки исключений
    #38205101
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
нововведения jdk 7 для обработки исключений
    #38205103
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
rdm,

http://programador.ru/java-7-last-coin/
я даже по русски что-то не вкурил в чем сахар то.
...
Рейтинг: 0 / 0
нововведения jdk 7 для обработки исключений
    #38205107
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
нововведения jdk 7 для обработки исключений
    #38205112
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
нововведения jdk 7 для обработки исключений
    #38205117
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только видимо это лишнее)
rdm иначе будет брошено исключение базового класса для объявленных типов после throws. Т.е. не нужно после throws писать еще Exception.
...
Рейтинг: 0 / 0
нововведения jdk 7 для обработки исключений
    #38205119
redwhite90
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Действительно, мнение Blazkowicz будет весьма интересно.
...
Рейтинг: 0 / 0
нововведения jdk 7 для обработки исключений
    #38205129
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
нововведения jdk 7 для обработки исключений
    #38205138
rdm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
нововведения jdk 7 для обработки исключений
    #38205145
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
rdm,

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

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

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

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

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

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

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


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