Учитывая, что у вас есть такой код:
doSomething() // this method may throw a checked a exception
//do some assignements calculations
doAnotherThing() //this method may also throw the same type of checked exception
//more calls to methods and calculations, all throwing the same kind of exceptions.
Теперь я знаю, что при создании исключения фактически наблюдается снижение производительности, в частности, раскручивание стека. Кроме того, я прочитал несколько статей, указывающих на незначительное снижение производительности при вводе блоков try / catch, но ни одна из статей, похоже, ничего не завершает.
Мой вопрос таков: рекомендуется ли держать строки внутри перехвата попытки на минимальном уровне? Код внутри предложения try работает медленнее или вызывает снижение производительности?
Но более важно, что это лучший метод / более читаемое решение, учитывая следующее:
try {
doSomething() // this method may throw a checked a exception
//do some assignements calculations
doAnotherThing() //this method may also throw the same type of checked exception
//more calls to methods and calculations, all throwing the same kind of exceptions.
}
catch (MyCheckedException e) {
//handle it
}
или:
try {
doSomething() // this method may throw a checked a exception
}
catch (MyCheckedException e) {
//Store my exception in a Map (this is all running in a loop and I want it to continue running, but I also want to know which loops didn't complete and why)
continue;
}
//do some assignements calculations
try {
doAnotherThing() // this method may throw a checked a exception
}
catch (MyCheckedException e) {
//Store my exception in a Map (this is all running in a loop and I want it to continue running, but I also want to know which loops didn't complete and why)
continue;
}
Это с учетом того, что вы будете обрабатывать ВСЕ эти проверенные исключения совершенно одинаково, конечно.