Я понимаю, что мы можем использовать, наконец, таким образом:
Код: Выделить всё
function hi() {
return 'Hi';
}
try {
throw new LogicException("Throw logic \n");
} catch (InvalidArgumentException $e) {
echo $e->getMessage();
}
echo hi();
Код: Выделить всё
> Fatal error: Uncaught LogicException: Throw Logic in C:\path\to\filename.php:167
Stack trace:
#0 {main}
thrown in C:\path\to\filename.php on line 167
интерпретатор PHP останавливает выполнение скрипта. хороший. Судя по тому, что я прочитал, наконец-то позволяет нам выполнить функцию hi();, даже если
исключение не обрабатывается (хотя я не знаю почему)
Итак, это я понимаю.
Код: Выделить всё
try {
throw new LogicException("Throw logic \n");
} catch (InvalidArgumentException $e) {
echo $e->getMessage();
} finally {
echo hi();
}
Код: Выделить всё
> Hi
> Fatal error: Uncaught LogicException: Throw Logic in C:\path\to\filename.php:167
Stack trace:
#0 {main}
thrown in C:\path\to\filename.php on line 167
Код: Выделить всё
try {
throw new LogicException("Throw logic \n");
} catch (LogicException $e) {
echo $e->getMessage();
} finally {
echo hi();
}
Код: Выделить всё
> Throw logic
> Hi
Я думал, что блокfinally следует использовать в качестве крайней меры на случай, если исключения не будут перехвачены, даже если это не так, тогда зачем его запускать? это?
Подробнее здесь: https://stackoverflow.com/questions/416 ... sed-in-php
Мобильная версия