Задать вопрос
@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 и я могу вкладывать их в друг друга сколько угодно? Объясните а то у меня голова болит от не понимания(
  • Вопрос задан
  • 53 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
inoise
@inoise Куратор тега PHP
Solution Architect, AWS Certified, Serverless
Эксепшены передают друг-друга наверх по стеклу, все верно. Они ещё и разные дочерние классы могут иметь
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы