ایجاد کنترل‌کننده خطا در PHP

کنترل کننده خطا در PHP

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

این تابع باید حداقل دو پارامتر داشته باشد. پارامترهای اجباری :

  • error level(اهمیت خطا)
  • error message( پیغام خطا)

اما در کل میتواند ۵ پارامتر را در برگیرد. نوشتن سه پارامتر دیگر به صورت اختیاری است. این پارمترها شامل:

  • line-number (شماره خطی که در آن خطا رخ داده است)
  • the error context (محتوانی خطا)
  • file ( نام فایل)

نحوه نوشتن این تابع بری ایجاد کنترل‌کننده خطا در PHP به صورت زیر است:

توضیحات

پارامترها

این پارامتر اهمیت خطا را نشان میدهد.نوشتن اجباری است و با عدد نمایش میدهند. توضیح آن در جدول زیر آمده است.

error_level

پیغامی درباره خطا است.  نوشتن آن اجباری است

error_message

این پیغام نام متغیر را مشخص میکند و نوشتن آن اختیاری است.

error_file

این پیغام شماره خطی را که خطا در آن رخ داده است نشان میدهد. نوشتن این پارامتر اختیاری است

error_line

این خطا شامل تمام متغیرها و ارزش آن ها است زمانی که خطایی رخ میددهد. نوشتن این پارامتر اختیاری است.

error_context

گزارش اهمیت خطا درPHP

جدول زیر انواع  اهمیت خطا در PHP وتوضیح هر یک  را نشان میدهد.

توضیحات

پارامتر

ارزش

اهمیت خطا کم بوده و مانع اجرای کد نویسی ها نمیشود.

E_WARNING

۲

برنامه ممکن اسن دچار مشکل شده باشد و خطا نمایش دهد اما در روند ادامه برنامه مشکلی ایجاد نمیکند.

E_NOTICE

۸

یک پیغام مهم است و در روند اجرای اسکریپت ها اختلالی ایجاد میکند.

E_USER_ERROR

۲۵۶

یک پیغام ساده است و در روند اجرای اسکریپت ها اختلالی ایجاد نمیکند. مانند E_WARNING خطا هم توسط طراح وب برنامه پیش بینی میشود

E_USER_WARNING

۵۱۲

پیغام خطا یک پیغام معمولی بوده و طراح وب آن را پیش بینی میکند

E_USER_NOTICE

۱۰۲۴

یک خطای بسیار مهم و اسکریپت ها را از کار می اندازد

E_RECOVERABLE_ERROR

۴۰۹۶

همه نوع خطا را شامل میشود.

E_ALL

۸۱۹۱

حال بیاید برای کنترل خطا ها یک تابع را به عنوان مثال تعریف کنیم:

 کد نوشته شده فوق به صورت ساده ای کنترل کننده خطا در PHP است. در این تابع متغیر اول errno$ اهمیت خطا  و errstr$ پیغام خطا را ذخیره میکند و سپس به خروجی میفرستد.

6 نظرات شما

  • مرتضی

    آبان ۱۴, ۱۳۹۲ at ۹:۱۱ ب.ظ
    سلام خسته نباشید سایت خیلی خوبیه دستت درد نکنه مطالبی از شی گرایی نیست در این مورد بیشتر مطلب بنویسید اگه فرصت کردید کار با دیتابیس هم توضیح دهید پی اچ پی بدون دیتابیس زیاد جالب نیست.
    • بهاران بنی اسدی

      آبان ۱۵, ۱۳۹۲ at ۵:۲۲ ب.ظ
      سلام ممنون از نظراتتون. حتما در درس های آینده درباره این مطالب توضیح خواهم داد.
  • مصطفی

    آبان ۱۶, ۱۳۹۲ at ۱۰:۲۶ ب.ظ
    سلام تست کردم نشد!!
    • بهاران بنی اسدی

      آبان ۱۸, ۱۳۹۲ at ۹:۱۶ ق.ظ
      سلام چرا؟ میتونید کدی که نوشتید رو بگذارید؟
  • مصطفی

    آبان ۲۰, ۱۳۹۲ at ۷:۵۱ ب.ظ
    شاید درست مفهمومشو نگرفته باشم ولی این کدو نوشتم: <?php $errstr="erroooooooooooooor"; function customError($errno, $errstr) { echo "my eror [$errno] $errstr"; echo "End"; die(); } $x=1 echo $x; ?>
    • بهاران بنی اسدی

      آبان ۲۱, ۱۳۹۲ at ۹:۵۸ ق.ظ
      تابع ای که نوشتید 3 خطا دارد. 1. متغیر errno تعریف نشده است 2. تابع costomError هیچ کجا فراخوان نشده است. به این لینک مراجعه کنید: http://mobtadi.com/%D8%AA%D8%A7%D8%A8%D8%B9trigger_error-%D8%AF%D8%B1-php/ 3. متغیر 1=x$ باید با ; بسته شود.

پاسخ دهید

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


© 2013 Mobtadi. All rights reserved.
کلیه حقوق مادی و معنوی برای وبسایت مبتدی محفوظ است.