Би било трудно всичко да се промени бързо. Моля, обърнете внимание, че понякога има друг try-catch
блок в finally
, който улавя изключения, хвърлени при затваряне на ресурс.
Изявлението try-with-resources
ви позволява да обработвате изключения при затваряне на ресурс (изключенията, хвърлени в метода close
, ще бъдат премахнати).
Не съм чувал за такава функция Eclipse
, но ако може да искате да използвате IntelliJ IDEA Community Edition
IDE само за тази единствена цел.
#1
Можете да използвате функции за проверка на кода, наречени:
'try finally' replaceable with 'try' with resources
.
AutoCloseable used without 'try' with resources
Трябва просто да натиснете Ctrl+Alt+Shift, да напишете името на проверката и да натиснете Enter. След това ще видите места, където IDEA може да приложи този модел, но имайте предвид, че той не покрива 100% случаи.
#2
Друг начин, по-труден, но много адаптивен е Structural Search and Replace
функционалността. Там можете да дефинирате структура, която да бъде променена:
try {
$type$ $objectName$ = new $concreteType$($args$)
$tryStatements$;
} catch($exceptionType$ $exceptionName$) {
$catchStatements$;
} finally {
$finallyStatements$;
}
И окончателната структура:
try ($type$ $objectName$ = new $concreteType$($args$)) {
$tryStatements$;
} catch($exceptionType$ $exceptionName$) {
$catchStatements$;
}
В променливите настройки можете да изисквате $concreteType$
да внедрява AutoCloseable
интерфейс.
Но имайте предвид, че:
- Тук се отървавам от блок
finally
и поддържам единичен блок catch
.
- Има също предположение, че ще има един отворен ресурс за един
try-with-resources
блок.
- Както споменахме по-рано - няма обработка на изключения в блок
finally
.
Този шаблон със сигурност се нуждае от повече работа и просто може да не си струва да го правите.
person
Maciej Dobrowolski
schedule
26.02.2016