PHP Exception

php exception handling tutorial
20 آبان 1403

اجازه بده که درباره استثناها در PHP یکم خودمونی صحبت کنیم. PHP یکی از زبان‌های برنامه‌نویسی محبوب و همه‌کاره است که توی دنیای وب خیلی ازش استفاده می‌کنیم. با این وجود، بعضی وقت‌ها برنامه‌ها اونجوری که انتظار داریم کار نمی‌کنن و خطاها باعث می‌شن کارهامون متوقف بشن. در این جور مواقع، مفهوم استثناها به کار می‌آد. استثنا یا Exception یک راهکار برای مدیریت خطاهایی است که در زمان اجرای برنامه رخ می‌ده.

هنگامی که یک استثنا پرتاب (throw) می‌شود، پروژه بهم نمی‌ریزد، بلکه می‌توانیم با مدیریت صحیح شون کارکرد درست برنامه رو تضمین کنیم. توی برنامه‌نویسی به کمک دستورهای اصولی مثل try و catch می‌تونیم به راحتی این استثناها رو مدیریت کنیم. ربط این ماجرا به PHP اینجاست که PHP با امکانات قدرتمندش این امکان رو به ما می‌ده تا برنامه‌ها رو به صورت موثر مدیریت کنیم.

حالا یه مثال ساده بزنیم از اینکه چطور می‌شه با استفاده از استثناها توی PHP یه برنامه رو پایدار کرد. فرض کنید یک فرم داریم که کاربر باید اطلاعاتش رو وارد کنه. اگه یکی از فیلدها رو خالی بزاره چی؟ خب به جای اینکه برنامه crash کنه، می‌تونیم به کمک استثناها به کاربر پیام مناسب بدیم و خطا رو مدیریت کنیم.

با هم یه نگاهی بندازیم به چند خط کد که مفهوم استثناها توی PHP رو بهتر توضیح می‌ده. کامل بودن این مثال‌ها به برنامه‌نویس این امکان رو می‌ده که با قدرت بیشتری در پروژه‌هاش استفاده کنه.


<?php
try {
$age = -1;
if ($age < 0) {
throw new Exception('Age cannot be negative');
}
echo 'Your age is: ' . $age;
} catch (Exception $e) {
echo 'Caught exception: ' . $e->getMessage();
}
?>

<?php: شروع بلوک کد PHP
try { ... }: استفاده از بلوک try برای ارزیابی کدهایی که ممکن است استثنا رخ دهد
$age = -1;: تعریف متغیری با مقدار منفی
if ($age < 0) { ... }: بررسی اینکه متغیر عددی منفی است
throw new Exception('...'): پرتاب یک استثنا با پیام خطای دلخواه
catch (Exception $e) { ... }: بلوک catch برای دریافت و مدیریت استثنای پرتاب شده
$e->getMessage();: نمایش پیام استثنا

سوالات متداول

؟

چطور خطاهای رایج در PHP رو مدیریت کنم؟

؟

چگونه می‌توانم یک استثنا در PHP پرتاب کنم؟