Подтвердить что ты не робот

Код запуска Java только в том случае, если исключение не выбрасывается в блок try и catch?

Как это сделать, чтобы код выполнялся только в том случае, если не было исключено исключение?

С окончательным кодом запускается ли исключение или нет.

try {
   //do something
} catch (Exception e) {}
//do something only if nothing was thrown
4b9b3361

Ответ 1

Вот два способа:

try {
    // do something that may throw an exception
    // do something else if an exception was not thrown
} catch (...) {
    ...
}

Или если вы хотите, чтобы ваш второй блок кода находился вне блока try:

boolean success = false;
try {
   // do something that may throw an exception
   success = true;
} catch (...) {
   ...
}
if (success) {
     // do something if no exception was thrown
}

Вы также можете поместить оператор if в блок finally, но в вашем вопросе недостаточно информации, чтобы узнать, было бы это предпочтительнее или нет.

Ответ 2

try {
    doSomething();
    doSomething2();
} catch (Exception e) {
    doSomething3();
}

В этом примере doSomething2() будет выполняться только в том случае, если исключение не генерируется doSomething().

Если исключение выбрано doSomething(), doSomething2(); будет пропущено, и выполнение перейдет к doSomething3();

Также обратите внимание: doSomething3() будет выполняться, если есть исключение, созданное doSomething2();

Если исключение не выбрано, doSomething3(); не будет выполнено.

Ответ 3

Просто введите код в блок try. Если выбрано исключение, он перейдет к блоку catch. Если исключение не будет выбрано, код будет запущен.

try {
    someMethodThatMayThrowException();
    codeThatShouldBeRunIfNoExceptionThrown();
} catch (SomeException e) {}

Ответ 4

Исключения для управления потоком - это плохая практика. Если вы настаиваете, используйте переменную boolean.

boolean thrown = false;

try {
   //do something
} catch (Exception e) {
   thrown = true;
}

//do something only if nothing was thrown

if (!thrown) { 
    // do stuff
}