Строки:
catch(Exception $e){
throw $e;
}
Не имеет смысла. Когда вы ловите исключение, вы должны что-то делать с таким исключением, как:
catch(Exception $e){
error_log($e->getMessage());
die('An error has occurred');
}
Но в вашем случае исключение выдается непосредственно внешнему блоку try, который уже произойдет.
Если вы измените свой код на:
//some code
Создает точно такое же поведение.