دسته ها
دستهها
- php (1)
- امنیت (6)
- اندروید (3)
- اینترنت (2)
- برنامه نویسی (14)
- بوت استرپ (1)
- پایتون (1)
- تازه ها (22)
- ترفند ها (30)
- تکنولوژی های جدید (1)
- جاوا (2)
- جاوا اسکریپت (2)
- سئو (1)
- سخت افزار (4)
- صنعت بازی (1)
- صنعت رباتیک (1)
- طراحی وب (14)
- عکاسی (1)
- فضاهای ذخیره سازی (1)
- فلاتر (1)
- گوشی های هوشمند (1)
- متفرقه (1)
- موبایل (3)
- نرم افزار (17)
- هوش مصنوعی (4)
- وب (1)
- وردپرس (7)
- ویدئو های آموزشی (24)
درس دهم: exception در php
exception مشکلی است که در هنگام اجرای یک برنامه رخ می دهد. هنگامی که حین انجام یک دستور، exception اتفاق بیفتد، کدی که در ادامه آن دستور می آید، اجرا نخواهد شد و php به دنبال اولین بلوک catch که بتواند مشکل را حل کند می گردد و اگر آن را پیدا نکند، خطایی در صفحه نمایش چاپ خواهد شد. در ادامه با موستانگ همراه باشید تا بیشتر درباره exception و بلوک های try و catch در این زبان برنامه نویسی بدانید.
نحوه برخورد با exception در php
زبان PHP نیز همانند زبان های برنامه نویسی دیگر، مدلی مشابه برای exception دارد. یک exception می تواند پرتاب شده (thrown) و سپس گرفته شود (catched). قسمت پرتاب می تواند درون یک بلوکِ try باشد، بدین ترتیب گرفتن احتمالی exception ها ساده تر خواهد بود. هر بلوک try باید به حداقل یک بلوک catch یا یک بلوک finally مرتبط باشد.
بطور مثال، در کد زیر می خواهیم که یک عملیات ریاضی (تقسیم بر 0) انجام دهیم که فکر می کنیم ممکن است منجر به خطا شود. بنابرین آن را درون یک بلوک try قرار می دهیم و سپس هنگام بروز خطا، در بلوک catch آن را مدیریت می کنیم.
try {
echo 2 / 0;
} catch (Exception $e) {
echo "Caught exception: Division by zero!";
}
برای گرفتن انواع مختلفی از exception ها، می توان از بلوک های متعدد catch استفاده کرد. یک اجرای معمولی (هنگامی که هیج exception ای درون بلوک اتفاق نیفتد) پس از آخرین catch تعریف شده ادامه می یابد.
Exception ها می توانند درون یک بلوک catch نیز پرتاب شوند (یا به اصطلاح دوباره پرتاب شوند).
if (4/2 == 2) {
echo "Right!";
} else {
throw new Exception("Wrong answer!");
}
وقتی یک exception پرتاب می شود، کدی که در ادامه آن دستور آمده بود، دیگر اجرا نخواهد شد و PHP به دنبال یافتن اولین بلوک catch مرتبط با آن می گردد. اگر یک exception گرفته نشود، خطایی با پیغام Uncaught Exception نمایش داده می شود (مگر اینکه یک handler با استفاده از ()set_exception_handler تعریف شده باشد).
بلوک های finally
در PHP 5.5 و بعد از آن، یک بلوک finally می تواند بعد و یا به جای بلوک های catch تعریف شود. کدی که درون بلوک finally قرار دارد، پس از بلوک های try و catch همیشه اجرا خواهد شد، حتی اگر exception رخ ندهد و این اتفاق قبل از ادامه اجرای نرمال کد خواهد بود.
try {
echo 4/0;
} catch (Exception $e) {
echo "Divided by zero!";
} finally {
echo "This will be outputed even if exception will happen!";
}
تمرین ( exception در php )
از بلوک های try، catch و finally استفاده کنید تا یک exception را بگیرید و دستور !Exception caught را چاپ کنید و در انتها نیز جمله !Done را نشان دهید. در واقع خروجی نهایی باید به شکل زیر باشد:
Exception caught! Done!
در نهایت
[*] در این درس، با معرفی مفهوم Exception دوره ی آموزش زبان برنامه نویسی php را به انتها رساندیم. اگر شما عزیزان این آموزش را پسندیدید و دوست دارید تا موستانگ دوره های پیشرفته بیشتری از انواع زبان های برنامه نویسی برای شما قرار دهد، می توانید با نظرات خود در قسمت نقد و بررسی دوره، از ما حمایت کنید. برای تمرین کدنویسی نیز همیشه می توانید از قسمت مانژ استفاده کرده و سوالات برنامه نویسی خود را در آنجا با ما مطرح کنید.
[*] پاسخ تمرین و سوالات و نظرات خود درباره این درس را می توانید در پایین این نوشته و در قسمت دیدگاه ها ثبت کنید. نظرات شما برای موستانگ ارزشمند است.