Php виключення, що це

  • Php виключення, що це
  • Php виключення, що це
Php виключення, що це
  • PHP
  • винятки

Як працює механізм винятків в PHP я знаю досить добре, але проблема в іншому. Скільки б я не читав статей, і скільки б разів не намагався застосовувати їх на практиці, я натикаюся на певний нерозуміння області їх застосування. Люди з цього приводу часом говорять абсолютно різні речі. Хтось каже що виключення варто викидати якомога рідше і лише в крайніх випадках, хтось каже що коди повернення і розрулювання через if частіше підходить краще. Є думка що виняткова ситуація - це коли наприклад пішла у відмову БД або стороння АПИ, тобто ситуація, в якій наш додаток не винне. Я вже не беру в приклад для користувача введення, або наприклад перевірки типів (тим більше в PHP7 це все контролюється на рівні декларації методів). Випадків дуже багато, думаю немає сенсу перераховувати.

Я прошу вас допомогти мені розібратися в самій ідеї винятків, і що взагалі вважати винятковою ситуацією?

Наприклад, додаток зчитує конфігураційний файл, без параметрів які записані в цьому файлі продовжувати роботу скрипта не має сенсу. Припустимо цей файл був видалений, або переміщений. Тобто відсутність файлу викличе помилку при його includ'e, що це, виняткова ситуація або ж просто косяк розробника від якого не варто перестраховуватися, тому що передбачено то що цей файл там обов'язково повинен бути (наприклад в документації)? Ну да ладно. Отже перед тим як його підключати нам потрібно перевірити його на існування. Якщо він є - підключити, а якщо ні? Просто написати умова

Я просто не розумію сокральная сенсу "виняткової ситуації" хоча б'юся досить довго. Допоможіть, будь ласка, розібратися. Дякуємо!

Окей.
Припустимо ваша програма отримує дані від користувача (він вводить в віконце) і зберігає їх на диск.

Раптово ви спробуєте скористатися функцією, виявляється що
на гвинті не вистачає місця
або права доступу забороняють запис,
або взагалі гвинт накрився і не відповідає.

Що робити програмі при такій помилці - негайно закриватися з системною помилкою? Передбачити ВСЕ доступні варіанти проблем з файлами? Простіше повісити на процедуру запису один виняток, і в разі його спрацювання виводити користувачеві власне оповіщення.

Можна знайти купу інших винятків - тобто "помилок", які повинні не просто завершити вашу програму, а зробити closure tasks - коректно зберегти завершити процедури, вивести табличку, а в деяких випадках навіть і проігнорувати помилку.

Схожі статті