مدیریت خطا ( Error Handling ) در PHP

مدیریت خطا ( Error Handling ) در PHP

مدیریت خطا در PHP – در هر زبان برنامه نویسی خطا هایی وجود و همچنین مدیریت خطایی هم به همین صورت .

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

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

مدیریت خطا در Notice Error

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

if (isset($data)) {
	echo $data;
}


همچنین برای آرایه ها

$list = ['alfa', 'arad']; // 0 => alfa , 1 => arad ,

if (isset($list[2])) {
	echo $list[2];
}


همان به صورت keyname

$list = ['first_name' => 'Poorya', 'last_name' => 'Niknam'];

if (isset($list['age'])) {
	echo $list['age'];
}


مدیریت خطا در Warning Error

مورد اول که برای دسترسی به یک منبع ( فایل ) می باشد ابتدا باید بررسی کنیم که آیا این فایل وجود دارد یا خیر ، در صورتی که وجود داشت محتوا رشته ای آن را نمایش دهد :

$file_path = "content/data.txt";

if (file_exists($file_path)) {
	$file_content = file_get_contents($file_path);
	echo $file_content;
} else {
	echo "unable to find  {$file_path}";
}


و برای دسترسی به ثابت ها تابعی وجود دارد به نام defined که بررسی می کند آیا ثابتی با آن نام تعریف شده یا نه .

if (defined('abspath')) {
	echo abspath;
}


و در مورد تقسیم عددی بر روی 0 ، باید ابتدا عدد تقسیم کننده را بررسی کنیم که آیا بجز 0 است یا خیر .

$number = 1;
$division = 0;

if ($division != 0) {
	$res = $number / $division;
	echo $res;
}


مدیریت خطا در Fatal Error

زمانی که تابعی را فرخوانی می کنید که از قبل تعریف نشده با Fatal Error مواجه می شوید . با استفاده از تابع function_exists می توانید بررسی کنید که آیا تابع وجود دارد یا خیر

if (function_exists('my_undefined_function')) {
	my_undefined_function();
}


مدیریت خطا های مشابه Fatal Error

تکنیک try و catch به ما کمک می کند تا برخی از ارور هایی که تعریف کرده ایم را مدیریت کند در بخش try کدی که به طور معمول اجرا می کنیم را قرار می دهیم و در بخش catch باید خطا هایی را که پیش بینی می کنیم را تعریف کنیم تا در صورت مواجه شدن با خطا چه کاری را انجام دهد .

function throw_error(int $errno = 1) {

	switch ($errno) {
	case 1:
		throw new Exception("Exception error");
		break;

	case 2:
		throw new TypeError("TypeError error");
		break;

	case 3:
		throw new Error("Error");
		break;

	}

}

try {
	throw_error(2);
} catch (Exception | TypeError | Error $e) {
	echo $e->getMessage();
}

مدیریت خطا در PHP

ارسال نظر

جهت استفاده از کد حتما از تگ pre استفاده نمایید .

contact us