Блок Finally - Обработка исключительных ситуаций try-catch , В чем

Лекция



Это продолжение увлекательной статьи про 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

21
22
23
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

В этом разделе мы рассмотрим, как вы можете использовать ключевое слово 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

См.также

  • Код ошибки
  • Setjmp/longjmp
  • операторы управления ошибками php , @ , at-sign ,
  • Автоматическая обработка исключений
  • Исключительная безопасность
  • Продолжение
  • Защитное программирование
  • setjmp / longjmp
  • Тройная ошибка
  • Векторная обработка исключений (VEH)
  • Типы опционов и типы результатов , альтернативные способы обработки ошибок в функциональном программировании без исключений
  • Ловушка (вычисления)

Исследование, описанное в статье про try-catch , подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое try-catch , исключения , ошибки , в чем разница между исключениями и ошибками?, обработка исключительных ситуаций и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

создано: 2021-07-03
обновлено: 2024-11-13
133



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)

Термины: Выполнение скриптов на стороне сервера PHP (LAMP) NodeJS (Backend)