Какое влияние оказывает зона триумфа на производительность?

1

Маленькая область try/catch работает лучше, чем широкая область этого или нет различий?

small area

try{
    // the line needs exception handling
} catch( Exception e) {

  }

wide area

try{
    // the line needs exception handling
    // other lines of code
} catch( Exception e) {

  }
Теги:
performance
exception-handling

2 ответа

2
Лучший ответ

Не было каких-либо значительных затрат на производительность для ввода блока try в Java с Java 1 или 2 (если тогда, я не совсем помню, это было давно). Это (немного) дорого, когда выбрано исключение (это нормально, они предназначены для исключительных условий, а не для нормальных), но вход в блок try дешев. Таким образом, с точки зрения производительности для нормального потока потока в вашем коде, не имеет значения, используете ли вы несколько маленьких или пару больших.

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

2

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

Например:

try{
 // logic one

}catch(MyException1 e){

} 
try{
 // logic two

}catch(MyException2 e){

} 

Вы можете преобразовать это в Java 7

try{
 // logic one
 // logic two
}catch(MyException1 | MyException2 e){

} 

Ещё вопросы

Сообщество Overcoder
Наверх
Меню