class MyExc1 extends Exception {}
class MyExc2 extends Exception {}
class MyExc3 extends MyExc2 {}
public class C1 {
public static void main(String[] args) throws Exception {
try {
System.out.print(1);
q();
}
catch (Exception i) {
throw new MyExc2();
}
finally {
System.out.print(2);
throw new MyExc1();
}
}
static void q() throws Exception {
try {
throw new MyExc1();
}
catch (Exception y) {
}
finally {
System.out.print(3);
throw new Exception();
}
}
}
Меня попросили предоставить результат. Я ответил на 13Exception в главном потоке MyExc2, но правильный ответ — 132Exception в главном потоке MyExc1. Почему это так? Я просто не могу понять, куда делся MyExc2.
Меня попросили предоставить результат. Я ответил на 13Exception в главном потоке MyExc2, но правильный ответ — 132Exception в главном потоке MyExc1. Почему это так? Я просто не могу понять, куда делся MyExc2.
Блок Finally выполняется непосредственно перед оператором return в блоке try, как показано в примере ниже — возвращает False вместо True:
>>> def bool_return():
... try:
... return True
... finally:
... return False
...
>>> bool_return()
False...
Я пытаюсь запускать цикл каждые 5 секунд, чтобы получить показания с COM-порта. При успешном получении показаний только один раз. Хотелось бы запустить цикл, даже если есть ошибка. иногда показания будут доступны на 4-й итерации.
Ниже приведен код,...
Меня совершенно смущает то, как в C# создаются исключения. Если возникает исключение, в блоке try
1. оно передается в блок catch,
2. Если и только если блок catch перехватит его, будет выполнен блокfinally.
3. Блок «finally» выполняется последним...
Я никогда не использую его, поэтому мне интересно, насколько полезен блокfinally.
В чем разница между
try {
// A
} catch(...) {
// B
} finally {
// C
}
и
try {
// A
} catch(...) {
// B
}
// C
В обоих случаях:
если нет исключений -> A,C
если...