آموزش مدیریت خطا و استثنا در PHP

4 سال پیش
آموزش مدیریت خطا و استثنا در PHP
امتیاز دهید post

آموزش مدیریت خطا و استثنا در PHP

 

در این درس از مجموعه آموزش برنامه نویسی سایت سورس باران، به آموزش مدیریت خطا و استثنا در PHP خواهیم پرداخت.

مدیریت خطا فرآیند گرفتن خطاهای مطرح شده توسط برنامه شما و سپس اقدام مناسب است. اگر اشتباهات را به درستی مدیریت کنید، ممکن است منجر به عواقب پیش بینی نشده بسیاری شود.

برای کنترل خطاها در PHP بسیار ساده است.

استفاده از تابع ()die 

هنگام نوشتن برنامه PHP خود ، باید قبل از ادامه همه شرایط خطای احتمالی را بررسی کنید و در صورت لزوم اقدامات مناسب را انجام دهید.

مثال را بدون داشتن پرونده /tmp/test.xt و با این فایل دنبال کنید.

 

به این ترتیب می توانید یک کد کارآمد بنویسید. با استفاده از تکنیک بالا می توانید هر زمان که برنامه شما خطا کرد متوقف شده و پیام معنی دارتر و کاربرپسندی را نمایش دهید.

تعریف تابع مدیریت خطاهای سفارشی

شما می توانید تابع خود را برای مدیریت هر خطایی بنویسید. PHP چارچوبی برای تعریف تابع مدیریت خطا در اختیار شما قرار می دهد.

این تابع باید بتواند حداقل دو پارامتر را کنترل کند (سطح خطا و پیام خطا) اما می تواند حداکثر پنج پارامتر را بپذیرد (به صورت اختیاری: پرونده ، شماره خط و زمینه خطا) –

نحو

 

1 error_level

اجباری – سطح گزارش خطا را برای خطای تعریف شده توسط کاربر مشخص می کند. باید یک عدد ارزش باشد.

2 error_message

اجباری – پیام خطا را برای خطای تعریف شده توسط کاربر مشخص می کند

3 error_file

اختیاری – نام پرونده ای را که خطا در آن رخ داده را مشخص می کند

4 error_line

اختیاری – شماره خطی را که خطا در آن رخ داده را مشخص می کند

5 error_context

اختیاری – آرایه ای را مشخص می کند که شامل هر متغیر و مقادیر استفاده از آنها هنگام وقوع خطا باشد

 

سطوح احتمالی خطا

این سطوح گزارش خطا انواع مختلف خطایی است که کاربر کنترل کننده خطا می تواند برای آنها استفاده شود.

ثابت و توضیحات مقدار
1 .E_ERROR

خطاهای خطرناک زمان اجرا. اجرای متن متوقف شده است

1
2 E_WARNING

خطاهای زمان اجرا غیر کشنده. اجرای متن متوقف نیست

2
3 E_PARSE

خطاهای تجزیه زمان کامپایل. خطاهای تجزیه فقط باید توسط تجزیه کننده تولید شود.

4
4 E_NOTICE

اعلامیه های زمان اجرا اسکریپت موردی را پیدا کرد که ممکن است یک خطا باشد ، اما ممکن است هنگام اجرای معمول اسکریپت نیز اتفاق بیفتد

8
5 E_CORE_ERROR

خطاهای خطرناکی که در هنگام راه اندازی اولیه PHP رخ می دهد.

16
6 E_CORE_WARNING

خطاهای زمان اجرا غیر خطرناک. این در هنگام راه اندازی اولیه PHP اتفاق می افتد.

32
7 E_USER_ERROR

خطای خطرناک ایجاد شده توسط کاربر. این مانند E_ERROR است که توسط برنامه نویس با استفاده از تابع PHP trigger_error تنظیم شده است

256
8 E_USER_WARNING

هشدار غیر خطرناک تولید شده توسط کاربر. این مانند E_WARNING تنظیم شده توسط برنامه نویس با استفاده از تابع PHP trigger_error است

512
9 E_USER_NOTICE

اعلان تولید شده توسط کاربر. این مانند E_NOTICE است که توسط برنامه نویس با استفاده از تابع PHP trigger_error تنظیم شده است

1024
10 E_STRICT

اعلامیه های زمان اجرا PHP می تواند تغییراتی را در کد شما ایجاد کند که اطمینان از بهترین قابلیت همکاری و سازگاری سریع کد شما با آن امکان پذیر است.

2048
11 E_RECOVERABLE_ERROR

خطای مهلک قابل جلب. این مانند E_ERROR است اما می تواند توسط یک دسته مشخص شده توسط کاربر گیر بیابد (همچنین به set_error_handler مراجعه کنید

4096
12 E_ALL

همه خطاها و هشدارها ، به جز سطح E_STRICT (E_STRICT از PHP 6.0 بخشی از E_ALL خواهد بود)

 

تمام سطح خطای فوق را می توان با استفاده از تابع PHP داخلی کتابخانه تنظیم کرد که در آن کابین سطح از هر مقدار تعریف شده در جدول بالا باشد.

 

در زیر روش ایجاد یک تابع مدیریت خطا وجود دارد –

 

به محض اینکه کنترل کننده خطای سفارشی خود را تعریف کردید ، باید آن را با استفاده از PHP توابع مجموعه set_error_handler تنظیم کنید. حال بیایید با فراخوانی تابعی که وجود ندارد ، مثال خود را بررسی کنیم.

 

مدیریت استثنائات

PHP 5 یک مدل استثنایی شبیه به سایر زبانهای برنامه نویسی دارد. استثنائات مهم هستند و كنترل بهتري را در مورد كنترل خطا فراهم مي كنند.

بیایید در اینجا کلمه کلیدی جدید مربوط به موارد استثنا را توضیح دهیم.

  • Try – یک تابع با استفاده از یک استثنا باید در بلوک “امتحان” باشد. اگر استثنا راه اندازی نکند ، کد به صورت عادی ادامه می یابد. اما اگر استثنا باعث شود ، یک استثنا “thrown” می شود.
  • thrown – اینگونه استثنا را ایجاد می کنید. هر “پرتاب” باید حداقل یک “Catch” داشته باشد.
  • Catch – بلوک “catch” یک استثنا را بازیابی می کند و یک شی object حاوی اطلاعات استثنا ایجاد می کند.

 

هنگامی که یک استثنا thrown می شود، کد زیر عبارت اجرا نمی شود ، و PHP تلاش می کند تا اولین بلوک catch منطبق را پیدا کند. اگر یک استثنا گیر نیفتد ، یک خطایخطرناک PHP با “Uncaught Exception …” صادر می شود

یک استثنا را می توان در PHP پرتاب کرد ، و گرفت (“catch”) کرد. کد ممکن است در یک بلوک try احاطه شده باشد.

هر تلاش باید حداقل یک بلوک مربوطه داشته باشد. برای گرفتن دسته های مختلف از استثنا ها می توان از چندین بلوک صید استفاده کرد.

موارد استثنا را می توان در یک بلوک صید پرتاب کرد (یا دوباره پرتاب کرد).

مثال

در زیر قطعه کد وجود دارد ، این کد را در یک فایل کپی و جایگذاری کنید و نتیجه را تأیید کنید.

 

در مثال فوق از تابع  e-> getMessage$ برای دریافت پیام خطا استفاده شده است. توابع زیر وجود دارد که می تواند از کلاس Exception استفاده شود.

  • ()getMessage – پیام استثنا
  • ()getCode  – کد استثنا
  • ()getFile – نام پرونده منبع
  • ()getLine – خط منبع
  • getTrace ()  آرایه ()backtrace
  • ()getTraceAsString – رشته ردیابی شکل گرفته

 

ایجاد کنترل کننده استثناهای سفارشی

می توانید کنترل کننده استثنای سفارشی خود را تعریف کنید برای تنظیم تابع کنترل کننده استثنای تعریف شده توسط کاربر، از تابع زیر استفاده کنید.

 

در اینجا Exception_handler نام تابعی است که هنگام وقوع یک استثنا غیرقابل ضبط فراخوانی می شود. این تابع قبل از فراخوانی ()set_exception_handler  باید تعریف شود.

مثال

 

منبع.

 

لیست جلسات قبل آموزش PHP

  1. آموزش PHP
  2. معرفی PHP
  3. آموزش تنظیمات محیط PHP
  4. آموزش نحو PHP
  5. آموزش انواع متغیر در PHP
  6. آموزش انواع ثابت ها در PHP
  7. آموزش انواع عملگرها در PHP
  8. آموزش تصمیم گیری در PHP
  9. آموزش انواع حلقه در PHP
  10. آموزش آرایه ها در PHP
  11. آموزش رشته ها در PHP
  12. آموزش مفاهیم وب در PHP
  13. آموزش روش های  GET & POST در PHP
  14. آموزش Inclusion فایل در PHP
  15. آموزش پرونده ها و I / O در PHP
  16. آموزش توابع در PHP
  17. آموزش کوکی ها در PHP
  18. آموزش جلسات در PHP
  19. آموزش ارسال ایمیل با استفاده از PHP
  20. آموزش بارگذاری پرونده در PHP
  21. آموزش استاندارد کدگذاری در PHP
  22. آموزش متغیرهای از پیش تعریف شده در PHP
  23. آموزش عبارات منظم در PHP
امتیاز دهید post
0
برچسب ها :
نویسنده مطلب saber

دیدگاه شما

بدون دیدگاه