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

PHP

توسط reza در 8 سال پیش
0 27.6k 2 7 سال پیش
reza bill ltscriptgt
0

Handler (مدیر خطا) پیش فرض PHP بسیار کارآمد است اما صرفا فقط از بروز خطا ما را با خبر می سازد و در مواجهه با یک خطا عمل دیگری انجام نمی دهد. اما خوشبختانه این تمهید که در PHP شما بتوانید خطاها را خودتان مدیریت کنید دیده شده است و تابع set_error_handler به این منظور نوشته شده است

Set_error_handler($error_handler) ;

این تابع فقط یک آرگومان دارد که این آرگومان نام تابعی است که شما برای به دست گیری و مدیریت خطا می نویسید.
توجه : در صورتی که از عدد 0 به عنوان آرگومان تابع فوق استفاده شود بدست گیری و مدیریت خطا به حالت پیش فرض PHP باز می گردد.

set_error_handler(0) ;

برای این که بیشتر ملموس باشد مثالی می زنم:

<?phperror_reporting(E_ALL);function my_error_handler($number, $string, $file, $line){        echo ("Error ($number) on line $line in file $file. The error was \"$string\"\n") ;        // You Can do Any Code Here Like Error Logging Or e-mail The error to a email address or ...}ini_set('display_errors',0);set_error_handler("my_error_handler");$mysky = fopen('file1',1024);?>

در ضمن توی PHP5 میشه از try و catch هم استفاده کرد.

راه های دیگری هم وجود دارد:
توی php.ini می تونیم display_errors با off تنظیم کنیم. یا می تونیم از:

error_reporting(0);

منبع: برنامه نویس
برای اطلاع بیشتر به سایت رسمی php مراجعه کنید:

http://www.php.net/manual/en/ref.errorfunc.php
0

سلام
من همینکارو کردم ولی بازم خطا رو نمایش میده؟

0

> سلام من همینکارو کردم ولی بازم خطا رو نمایش میده؟
سلام اینو بذار ببین درست میشه؟
ini_set('display_errors', '0')

خوش آمدید

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