До сих пор полностью не понял, для чего нужны исключения и конструкции try-catch, если есть if-else? Ведь с помощью if else также можно остановить выполнение программы в нужном месте и выдать ошибку. Объясните необходимость исключений на примере laravel
Ну тут все просто пример с if и else
Допустим есть одна точка обработки запросов в index.php
$body = runApplication();
if($body['status'] == false ) {
echo 'Error: ' . $body['message'];
} else {
echo $body['body'];
}
// далее где то в runApplication есть автолод классов к примеру
// расмотрим функцию рендера главной страницы
function render() {
if(renderBlock1) {
return ['status' => false, 'msg' => 'error'];
}
if(renderBlock2) {
return ['status' => false, 'msg' => 'error 2'];
}
// и т.д.
}
function renderBlock()
{
/// какая то логика с ошибкой
return []; // снова обработка и ошибки и т.д.
}
А еще надо описать логику остановки приложения, и т.д. и т.п. вот именно такую логику и делают exception это некая ошибка по причине которой программа не может дальше работать. От слова 'неожиданость';
Теперь к рассмотрим пример с Exception
try {
appRun();
} catch (Exception $error) {
echo 'Error: ' . $error->getMessage();
}
// и теперь все что надо сделать это просто выкинуть exception
function rederBlock1 {
// какая то логика с ошибкой
throw new Exception('Error');
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости