Лекция
Это продолжение увлекательной статьи про try-catch .
...
!important; border-top-style: initial !important; border-right-style: solid !important; border-bottom-style: initial !important; border-left-style: initial !important; border-top-color: initial !important; border-right-color: rgb(228, 228, 228) !important; border-bottom-color: initial !important; border-left-color: initial !important; border-image: initial !important; inset: auto !important; float: none !important; height: auto !important; font-variant-numeric: normal !important; font-variant-east-asian: normal !important; font-stretch: normal !important; line-height: normal !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px 0.5em 0px 1em !important; position: static !important; text-align: right !important; vertical-align: baseline !important; width: auto !important; min-height: auto !important; white-space: pre !important;">20
class
ConfigFileNotFoundException
extends
Exception {}
try
{
// init bootstrapping phase
$config_file_path
=
"config.php"
;
if
(!
file_exists
(
$config_file_path
))
{
throw
new
ConfigFileNotFoundException(
"Configuration file not found."
);
}
// continue execution of the bootstrapping phase
}
catch
(ConfigFileNotFoundException
$e
) {
echo
"ConfigFileNotFoundException: "
.
$e
->getMessage();
// other additional actions that you want to carry out for this exception
die
();
}
catch
(Exception
$e
) {
echo
$e
->getMessage();
die
();
}
?>
Во-первых, мы определили класс ConfigFileNotFoundException
, который расширяет основной класс Exception
. Теперь он становится нашим настраиваемым классом исключений, и мы можем использовать его, когда хотим выбросить исключение ConfigFileNotFoundException
в нашем приложении.
Затем мы использовали ключевое слово throw
для исключения исключений ConfigFileNotFoundException
в случае, если файл config.php не существует. Однако важное различие находится в блоке catch
. Как вы можете видеть, мы определили два блока catch
, и каждый блок используется для обнаружения различного типа исключения.
Первый получает исключения типа ConfigFileNotFoundException
. Итак, если генерируемое исключение относится к типу ConfigFileNotFoundException
, этот блок будет выполнен. Если тип исключения не соответствует какому-либо конкретному блоку catch
, он будет соответствовать последнему, который должен поймать все генерические сообщения об исключениях.
В этом разделе мы рассмотрим, как вы можете использовать ключевое слово finally
вместе с блоками try
и catch
. Иногда вы хотите выполнить часть кода независимо от того, было ли исключено исключение. Вот где вы можете использовать блок finally
, поскольку код, который вы размещаете в блоке finally, всегда будет выполняться после выполнения блоков try и catch независимо от того, было ли выбрано исключение.
Попробуем понять это, используя следующий пример.
01
02
03
04
05
06
07
08
09
10
11
12
13
|
try { // code // if something is not as expected // throw exception using the "throw" keyword // code, it won't be executed if the above exception is thrown } catch (Exception $e ) { // exception is raised and it'll be handled here // $e->getMessage() contains the error message } finally |
продолжение следует...
Часть 1 Обработка исключительных ситуаций try-catch , В чем разница между исключениями и ошибками?
Часть 2 Как создавать пользовательские исключения - Обработка исключительных ситуаций try-catch ,
Часть 3 Блок Finally - Обработка исключительных ситуаций try-catch , В чем
Часть 4 Исключения - Обработка исключительных ситуаций try-catch , В чем разница
Часть 5 Ошибки не всегда являются ошибками - Обработка исключительных ситуаций try-catch
Исследование, описанное в статье про try-catch , подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое try-catch , исключения , ошибки , в чем разница между исключениями и ошибками?, обработка исключительных ситуаций и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Комментарии
Оставить комментарий
Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)
Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)