Когда выдается исключение, выполнение скрипта переходит к следующему соответствующему блоку catch()
(если вы находитесь внутри блока try{}
) или полностью останавливается (если исключение не перехвачено). Это поведение не связано с PDO, это то, как исключения работают на всех языках, которые их поддерживают. Таким образом, часть $dbhandler = NULL;
во втором примере никогда не будет выполнена. Вот простой тест, который вы можете запустить:
<?php
try{
throw new Exception('This exception will be caught');
echo 'Exception thrown, this line will not run' . PHP_EOL;
}catch(Exception $e){
echo 'Exception was caught as expected' . PHP_EOL;
}
throw new Exception('This exception will not be caught. Script ends here.');
echo 'Exception thrown, this line will not run either.' . PHP_EOL;