PDA

View Full Version : سوال: عدم اجرا شدن قسمت Catch



ameysams
جمعه 29 شهریور 1387, 02:51 صبح
چرا در این تکه کد قسمت catch اجرا نمیشه؟
<?php
try{

$x=1/0;

print $x;
}

catch (Exception $err){
print "my Error";

}


?>

saidshp
جمعه 29 شهریور 1387, 08:38 صبح
شما باید موقع بروز خطا یک شی exception رو پرتاب کنید


<?php
try{
$x=@(1/0);
if ( !$x ) {
throw new Exception;
}

}

catch (Exception $err){
print "my Error";

}

?>

ameysams
شنبه 30 شهریور 1387, 02:16 صبح
اگر ما بدونیم خطا چیه یا از کجاست دیگه چه لزومی به استفاده از try/catch است ؟،می تونیم با یک if جلوی ایجاد خطارو بگیریم!تازه اگر نتوانیم خطا رو ا قبل پیش بینی کنیم اونوقت چی؟

saidshp
شنبه 30 شهریور 1387, 09:22 صبح
exception بیشتر کاربردش تو برنامه های بزرگ هست و اونجاست که مفید بودنش مشخص میشه برای خود من تا قبل از اینکه با exception اشنا بشم رد گیری بعضی از خطاها خیلی خیلی مشکل بود که بیشتر هم برای اجرای sql بود وحتی ممکن بود ساعتها وقتم رو دنبال یک خطای E_WARNING تلف میکردم
exception از اسمش مشخص هست که برای استثناعات به کار بره و در مواقع ضروری .
exception یک خطا رو از پایین ترین سطح برنامه به بالاترین سطح هدایت می کنه (ردگیری نمایش میده )در برنامه ای که رویه ای هست و از هیچ نوع کلاس یا تابعی استفاده نشده exception خیلی به کار نمی یاد چون باهمون if هم میشه خطا رو پیدا کرد.
در هر حال به نظر من برای برنامه های کوچک خیلی لازم نیست اما اگر می دونید برنامتون بزودی رشد میکنه حتما ازش استفاده کنید تو بعضی تابع ها یا متد ها