آموزش مدیریت خطا در php


آموزش مدیریت خطا در php

مدیریت خطا در php یا همان Exception Handling در php که با دستور try catch انجام می شود , یک از موارد مهم اپلیکیشن های تحت وب است.برای آشنایی با انواع خطاها در php کلیک کنید

php نیز همانند زبان های برنامه نویسی دیگر مثل سی شارپ یک روش فوق العاده جذاب برای اداره کردن خطاها ارائه نموده است و آنهم استثنا یا Exception نام دارد .

آموزش مدیریت خطا در php

در php عملیات try-catch معمولا با استفاده از بلاک try و catch پیاده سازی می شود که خب در بعضی مواقع به این بلاک بخش دیگری به نام finally  اضافه می کنیم که بعد از اتمام بلاک try-catch کد های مربوط به final یا همان نهایی سازی اجرا می شود .

بلاک try شامل کدهایی است که به همراه قابلیت مدیریت خطا توسط php اجرا می شود و در صورت وجود هر خطا , توسط بلاک catch در php دریافت می شود .

برای هر یک از بلاک های try در اسکریپت php , باید حداقل یک بلاک catch وحود داشته باشد. می توانیم چندین بلاک catch نیز برای یک try به منظور مدیریت انواع exception ها در php داشته باشیم .

 

سینتکس try catch در php

کد php زیر به شما نحوه مدیریت خطا در php با try و catch را نشان میدهد .

مثال ساده php برای try – catch

یک مثال ساده از نحوه مدیریت خطا در php با try و catch را می بینیم.

در کد php بالا , بلاک try سعی می کند که طول آرایه گلوبال متغییر $_GET را برای چاپ هر یک از خانه های این آرایه بررسی کند .

حتما بخوانید  آموزش ajax در php

اگر مقدار آرایه $_GET صفر باشد , یک استثنا را به اصطلاح پرتاب (throw) می کند. حلقه و دستور throw توسط if –else های بخش try مدیریت می شوند.

 

استفاده چندگانه از catch

همانطور که بخش اول مقاله مدیریت خطا در php با try catch اشاره کردیم , catch های چندگانه برای یک بلاک try در php برای مدیریت اولویت بندی استثنا ها به کار میرود .

برای مثال , کتابخانه php کلاس های جداگانه های به عنوان LogicException در ختیار ما قرار می دهد .

کد php زیر شامل چندین بلاک شرط پرتاپ برای  استثناهای مختلف php است . برای مثال :

برای کپی صحیح و کامل کدها ، دابل کلیک کرده تا وارد محیط سفید و کپی شوید در غیر اینصورت امکان دارد اجرای کدها با مشکل روبرو شود

در اسکریپت php بالا , ما مقدار timestamp را با تابع mktime() در php بر اساس پارامتر های آرایه پاس داده شده محاسبه می کنیم . از آنجایی که تابع mktime مقادیر عددی را به عنوان مختصات زمانی دریافت می کند, مجبور هستیم که تمام پارامتر ها را قبل از پاس دادن به این تابع بررسی کنیم.

در هنگام اعتبارسنجی , اگر نوع داده ای اشتباه باشد , پس یک InvalidArgumentException پرتاب (thrown) می شود . در این جا , اگر پارامتر های آرایه خالی باشند , پس یک کلاس نمونه از Exception پرتاب می شود .

حتما بخوانید  تغییر اندازه تصاویر با php

این دو استثنا توسط دو بلاک catch جدا از هم برای یک بلاک try در این مثال استفاده شده اند .

 

Try-catch تو در تو

ما یک بلاک تو-در-تو php برای مدیریت مدیریت استثنا های بوجود آمده در بلاک قبلی ایجاد کردیم . برای مثال . اگر یک فایل آپلود کنیم , باید چک کنیم آیا از قبل وجود داشته یا خیر. اگر همچنین فایلی وجود نداشت , پس php یک file not found و بعد unable to upload file را به عنوان استثنا ایجاد میکند.

در چنین مواقعی , می توانید برای از try-catch های تو-در-تو برای نمایش خطاهای همه exception ها پیش آمده نشان بدید . برای مثال :

با پاس دادن یک نمونه از ارور exception قبلی می توانیم استثناهای تو-در-تو را مدیریت کنیم . و اسکریپت php بالا خروجی زیر را برگشت میدهد .

نکته :

  • می توانیم توابع سفارشی خود را به عنوان تابع مدیریت خطا توسط set_exception_handler() در php ست کنیم
  • در ورژن php5.5 و به بالا , می توانیم از بلاک finally برای مدیریت خطا در php استفاده کنیم . کد های داخل این بلاک به هر صورت چه خطایی ایجاد شود یا خبر , اجرا خواهد شد .

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

هر سوالی داشتید ، از قسمت نظرات ارسال کنید . سریعا ، پاسخگوی سوالات شما هستیم .

موفق و پیروز باشید

حسن شفیعی
مدرس ، پنتستر ، توسعه دهنده اپلیکیشن های تحت وب ، عضو مرکز حامی نخبگان و از مدیران و اعضای رسمی تیم امنیتی آشیانه هستم . علاقه خاصی به زبان php و امنیت شبکه و لینوکس دارم و هر روز تلاش می کنم به این حوزه ها مسلط تر شوم و اطلاعاتم را در وب به اشتراک بگذارم

دیدگاه کاربران

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

جدیدترین آموزش های آنلاین



دانلود رایگان (هدیه ویژه)

کتاب آموزش زبان برنامه نویسی PHP را دانلود و همین امروز یادگیری را شروع کن و به جمع برنامه نویسان ملحق شو ;)

دانلود رایگان کتاب

نظر کاربران عزیز

آموزش های آنلاین در چه زمینه ای تهیه کنیم ؟

نظر شما برای ما بسیار مهم است

Loading ... Loading ...

بخش کاربران

هنوز عضو نیستید ؟ کلیک کنید

دانلود کتاب

عضویت در خبرنامه