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

Изключения в PHP

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

Какви са изключенията?

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

Както PHP изключения функционират на практика?

С две изключения, действието може да се направи: хвърлей (хвърлени) и улов (хванат). Ако изключението се счита за изоставена, това означава само едно нещо: в хода на вашата програма има нещо, което е извън нормата. В този случай, ще трябва да използвате друга функция. За да хванеш изключения можете да получите само в специална функция, която, от своя страна, уведомява цялата програма, която е готова за обработка на изключения.

  1. Представете си, че вашият браузър - това стомна хвърля топката към коша за събиране.
  2. Играч, тесто се опитва да го удари, но той не е, за да се направи. В резултат на това той получава удар. Ако играчът върши работа, а след това аутфилдер има възможност да улови топката.
  3. А аутфилдер хваща топката, а след това има две възможности: да го хвърлят в друга аутфилдер (с малко разстояние от тесто) или привеждане на агрегиране извън играта с хвърляне на топката към него.

Хвърляне стомна ловец в този случай може да се сравни с нормалния ход на процеса. Въпреки това, ако играчът управлява тесто удари топката, а след това идва много изключение.

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

Как правилно да се използват изключения?

Ако искате да научите как да се справят с изключение, PHP, тогава трябва да се разбере едно нещо: изключенията се считат за неразделна част от PHP (SPL) стандартна библиотека, както и част от ядрото на PHP, при условие, че те принадлежат към версия 5 и по-горе. Можете също така трябва само да разберем естеството на тяхната употреба.

Изключения могат да бъдат прилагани по същия начин, както всеки друг обект:

Въз основа на това, ние имаме специални изключения методите, които могат да бъдат наречени, ако е необходимо. Последно значително улесни реакцията на образуване на специално изключение. Например, една функция, като например GetMessage () ви позволява да получавате съобщение за грешка. И това, от своя страна, може да бъде показана в браузъра или да пишете на дневника.

По-долу е даден списък с методи PHP изключения, които позволяват да се получи изключение съобщение - GetMessage ();

  1. Върнете цифров код представени изключение - getCode ();
  2. Вземете най-файл, в рамките на който е имало изключение - getFile ();
  3. Върнете номера на реда във файла, където е възникнала изключение - getLine ();
  4. Назад масив обратно проследяване () до изключенията появата - getTrace ();
  5. Вземи изключение се е появила преди текущата, ако това е, разбира се, беше - getPrevious ();
  6. Върнете се обратно проследяване масив () изключения под формата на низ - getTraceAsString ();
  7. Върнати в низ всички изключения - ToString (). Тази функция може да бъде презаписан друго.

За по-голяма яснота, горните методи ще създаде клас Потребителят, който ще се реализира чрез първоначалното управление на потребителски акаунти:

В този пример, има няколко места едновременно, които могат да бъдат изключение. На първо място, $ user_id функция в _getUserRecord () трябва да има тип цяло число. Ако процесът върви по друг начин, то следващата стъпка е да се генерира изключения:

След това, на потребителите са създадени с грешен идентификационен номер:

След тези стъпки, системата трябва да направи уведомлението. Сега припомним Филдър, който трябва не само да изравнят изключение, но също така и да се лекува:

В този случай, когато стигнем до улов изключение, ние можем да се избегне системата съобщава за грешка, образувана PHP по подразбиране.

Също така не забравяйте, че е възникнало изключение може да бъде спряно само ако горните функции се опитват улов може да го хване. В противен случай, грешка ще бъде показана в браузъра. Опитайте се да разбера къде точно в горния пример имаме изключение беше хвърлена.

  1. Нов потребител обект в низ $ User2 на = нов потребител ( "не цифров ');
  2. Извършва функция __construct () клас Потребителят е;
  3. Преход е направена, за да функционира _getUserRecord () клас на потребителя;
  4. Има една проверка от $ user_id функция _validateUserId;
  5. В този случай, ако $ user_id не се разпознава като числова стойност, обектът изключение е хвърлен.

В допълнение, можете да getTraceAsString функция (), за да се следи и други изключения:

Ако изключението настъпило дълбоко повикване $ user2 = нов потребител ( "не числов"), той е на върха толкова дълго, колкото блок пробвам улов няма да я обработи.

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

Все пак, това може да се промени по време на изключение:

Не забравяйте да се създаде клас UserErrors:

По този начин, има модификация на манипулатор изключение, за да покажете кода изключение, което ще се появи вместо съобщението.

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

След това ние извършваме изключение работа с модификация, за да бъдат в състояние да използват класа Logger:

Сега сме постигнали, че по време на изпълнението на програмата показва кода за изключение. exceptions_log.html Файловите могат да видят цялата информация, свързана с местоположението на изключението.

Както научихме по-рано, по изключение - тя е важен инструмент за участие в манипулиране на програмата грешка. Въпреки това, разширени изключения позволяват на програмиста да отида на друго ниво.

За да създадете този тип изключение, първо трябва да се изгради класа на изключения, които могат да разширят класа изключение.

След това трябва да се създаде клас UserException обичай изключение за по-горе, която е направила малко по-високо:

В резултат на това ние пренаписаха функция __construct, който е отговорен за изпълнението на строителя. Тъй като ние сме създали клас разширява класа изключение, в този случай е уместно да се прилага своя конструктор от директива родител.

По този начин, ние се освобождава от постоянен поколение на съобщенията за грешки, като се използват в работата си само кода изключение. Можете също да изтриете функцията за запис в списанието, тъй като точно същото е предвидено в обичай дизайнера.

Сега актуализиране код, приложим към нов клас UserException:

За да направите промени в кода, където може да възникне изключение. За да направите това, изберете клас Потребителя.

Сега ние се опитваме да се генерират три изключения:

Какви ползи ни очакват, когато се използва продължително изключване?

На първо място, ние можем да създадете потребителски дизайнер.

На второ място, с тип изключения разширените, можем да пренапишем функция __construct и стартирайте потребителски код.

На трето място, организират изключение може би в зависимост от вида на обекта. Е, и в четвъртия, ние можем да приложите няколко прихваща, срещани по време на обработката на изключения в зависимост от техния вид.

Как да използваме силата на множество подслушвания?

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

Например, блок пробвам улов може да борави с изключения само конвенционален тип. Но тази техника е по предназначение за непредвидени събития.

Сега ние се опитваме да се промени съществуващия код, така че UserException изключения се обработват по специален начин. За да направите това, трябва да се приложи друг прихващане единица, а след това всички неочаквани изключения ще бъдат обработени успешно.

Посочените по-горе изключения (UserException и изключение) могат да се обработват по различни начини, а някои от вас може да изглежда да се разделят лечението им не е от полза. Въпреки това, тъй като можете да получите на шоуто или да пишете в дневник на специални изключения.

Като цяло PHP изключение е централизирана и лесна обработка на различни грешки по време на изпълнение на код.

--------- Материали net.tutsplus.com ---------

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

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