@ortsuev33

Увидит ли catch ошибку в функции?

У меня такой код примерно
class name1{
function func1(){
try{
$db=Db::conn();
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$db->prepare().......
.....
....
$res=$db->exucute();
func2($db);
}
func2($db){
$db=$db;
$db->prepare().......
.....
....
$res=$db->exucute();
$db->commit();
}catch(){
$db->rollBack();
}
}
}


я хотел сделать $db для класса а не локальной ,думая что блок try не увидит ошибку в функции func2 я понимаю что я $db передал через аргумент ну почему это работает в голове не укладывается...т.е получается область видимости не помеха для try catch и я могу вкладывать их в друг друга сколько угодно? Объясните а то у меня голова болит от не понимания(
  • Вопрос задан
  • 52 просмотра
Решения вопроса 1
inoise
@inoise Куратор тега PHP
Solution Architect, AWS Certified, Serverless
Эксепшены передают друг-друга наверх по стеклу, все верно. Они ещё и разные дочерние классы могут иметь
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы