@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
Эксепшены передают друг-друга наверх по стеклу, все верно. Они ещё и разные дочерние классы могут иметь
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽
24 апр. 2024, в 22:11
2000 руб./за проект
24 апр. 2024, в 22:00
500 руб./в час
24 апр. 2024, в 21:49
10000 руб./за проект