ПредишенСледващото

Изключение Модел (изключения) в PHP 5 е подобна на тази, използвана в други езици за програмиране. Изключение може да се генерира (както се казва, "да се хвърлят") с помощта на отчета за хвърляне. и можеш да хванеш (или, както се казва, да се "хване") оператор на улова. Код хвърля изключение, тя трябва да бъде заобиколен от блок опитам. с цел да бъде в състояние да улови изключение. Всеки се опита блок трябва да има поне един съответстващ улов или най-накрая да блокира.

Генерираната обекта трябва да принадлежи на изключението за клас или наследяват от Изключение. Опитът да се хвърли изключение на друг клас ще доведе до фатална грешка.

Можете да използвате няколко блока за улова. прихващане на различни класове изключение. Нормално изпълнение (когато е без изключения са генерирани в блокове или опитайте генерира, когато класът не съвпада с часовете по изключение, декларирани в съответните блокове хване) ще продължи за последния блок улов. също могат да бъдат генерирани Изключения (или причинени отново) хвърлей оператор вътре блок за прихващане.

Когато по изключение след кода, описана от израза няма да бъде изпълнен, и PHP ще се опита да открие първия блок на улова. хване изключения от този клас. Ако изключението не е хванат, PHP ще даде съобщение за грешка: ". Неуловено Изключение" (неуловено изключение), ако манипулатор грешка не е била определена като е използвана set_exception_handler (функция).

ПОЗ 5.5 и по-късно също накрая блок може да се използва след или вместо хване блок. Код в крайна сметка блок винаги ще се извършва след кода в пробвам блокове и улов. независимо от това дали или не изключение е хвърлен, преди да продължи нормалното изпълнение на код. дали изключение е хвърлен и преди нормални автобиографии изпълнение.

бележки

Вътрешните функции PHP използват главно съобщения за грешки. и само новите обектно-ориентирани разширения използват изключения. Въпреки това, грешки могат лесно да бъдат превърнати в изключения, използващи ErrorException клас.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!