خرید بک لینک
با سلام


من چند روز میخواستم بجای بررسی خطا های و استثناهای به شکل قدیمی در کلاسها ، از مدیریت خطای خود php که همون exception هاست استفاده کنم


اما متوجه یه نکته ای شدم حالا نمیدونم درست میگم یا خیر


در زبان هایی مثل جاوا و سی شارپ وقتی یک استثنا در بلوک try ایجاد میشه بخش catch وارد عمل میشه ولی تو php یکم قضیه فرق میکنه


توی php حتما باید استثنا یا خطا رو خودمون پیگیری کنیم و برای اون از throw استفاده کنیم


واسه اینکه متوجه بشیم یک مثال میزنم


کد زیر در زبان php رو در نظر بگیرید :



function div($a , $b)
{
return $a/$b;
}




try
{
div(7, 0);
}
catch(Exception $e)
{
echo 'Message: ' .$e->getMessage();
}



وقتی این کد رو اجرا میکنیم try catch عمل نمیکنه تا زمانیکه کد به شکل زیر دربیاد



function div($a , $b)
{
if($b ===0)
{
throw new Exception('err : taghsim bar sefr');
}

return $a/$b;
}




try
{
div(7, 0);
}
catch(Exception $e)
{
echo 'Message: ' .$e->getMessage();
}



یعنی باید حتما خودمون استثانا رو پیدا و واسه اون throw تعریف کنیم


در حالیکه در زبان های دیگه مثل جاوا داریم





public static void main(String[] args)
{
try
{
div(7, 0);
}
catch(Exception e)
{
System.out.println("message : "+e.getMessage());
}
}


public static int div(int a, int b)
{
return a/b;
}









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


مثال بالا بدون مدیریت exception



$msg = '';


function div($a , $b)
{
global $msg;

if($b ===0)
{
$msg = 'err : taghsim bar sefr';
return false;
}

return $a/$b;
}




if( ! div(7,0))
{
global $msg;
echo $msg;
}

برچسب: نویسنده: خنج تاريخ: دوشنبه 9 بهمن 1396 ساعت: 2:11

صفحه بندی