Я использую try..catch блоки в моем PHP-коде, но я не уверен, правильно ли я их использовал.
Например, некоторые из моего кода выглядят следующим образом:
try {
$tableAresults = $dbHandler->doSomethingWithTableA();
$tableBresults = $dbHandler->doSomethingElseWithTableB();
} catch (Exception $e) {
return $e;
}
Итак, я группирую несколько операций с базами данных в одном блоке try/catch, потому что, если какое-либо исключение возникает в любой транзакции, я смогу обработать его.
Я делаю так, потому что считаю, что он более читабельным и эффективным, чем:
try {
$tableAresults = $dbHandler->doSomethingWithTableA();
} catch (Exception $e) {
return $e;
}
try {
$tableBresults = $dbHandler->doSomethingWithTableB();
} catch (Exception $e) {
return $e;
}
Хотя, я не уверен, что то, что я делаю, - это хорошая практика или просто ленивый способ поймать исключения.
Мое предположение заключается в том, что только если для исключения требуется специальная обработка, у него должен быть свой собственный блок try/catch, иначе группировка их в том же try/catch должна быть в порядке.
Итак, мои вопросы:
Есть ли преимущество использования блоков try/catch для транзакции базы данных? или я могу по-прежнему группировать несколько транзакций базы данных в одном и том же блоке try/catch без каких-либо проблем?
Можно ли встраивать блоки try/catch? Спасибо!
ИЗМЕНИТЬ
Оператор return был предназначен только для демонстрационных целей, но я также использую return в catch()
, потому что я делаю запрос AJAX к этому методу, а Javascript ожидает объект JSON, а затем, если возникает исключение я вернуть пустой JSON-кодированный массив. Я просто подумал, что это не добавит никакой ценности, чтобы вставить конкретный код в мой пример.