آنچه در این مقاله میخوانید
مدیریت خطا در زبان PHP
۱۵ شهریور ۱۳۹۹
مدیریت خطا (Error Handling) به فرایندی گفته میشود که در آن به یافتن خطاهای موجود در برنامه پرداخته میشود. در این مقاله از لیارا سعی داریم که جزئیات بیشتری از مفهوم مدیریت خطا و چگونگی انجام آن در برنامههای PHP، در اختیار شما قراردهیم.
همین الان، بدون پیچیدگی، وبسایت PHP خودتون رو در کمتر از چند دقیقه، روی هاست ابری لیارا اجرا کنید.
✅ بدون نیاز به تنظیمات ✅ سازگار با تمام فریمورکهای PHP ✅ راهاندازی سریع
هاست ابری PHP لیارا
آنچه در ادامه خواهید خواند:
- روشهای مدیریت خطاها در زبان PHP
- سوالات متداول
- جمع بندی
روشهای مدیریت خطاها در زبان PHP
همانطور که میدانیم، مدیریت خطاها یک بخش مهم در هنگام ایجاد اسکریپتها و برنامههای وب است، اما این فرایند در زبان PHP بسیار آسان خواهد بود. اگر برنامهای که در حال توسعه آن هستید، فاقد کدی برای بررسی خطاهای بهوجود آمده باشد، ممکن است برنامه شما را در معرض خطرهای امنیتی قراردهد و همچنین میتوان گفت که برنامهتان غیرحرفهای است. در ادامه روشهای مختلفی را برای مدیریت خطاها در زبان PHP بررسی خواهیم کرد:
- استفاده از تابع
die()
- سفارشیسازی و گزارش خطاها

آموزش نصب PHP
نصب PHP
استفاده از تابع die()
باید در زمان توسعه برنامهتان، تمام خطاهای احتمالی را بررسی کرده و اقدامهای لازم را انجام دهید. در ادامه یک نمونه کد با استفاده از تابع die()
قرار گرفته است که میتوانید ببینید چگونه در آن خطای احتمالی را بررسی کردهایم.
<?php
$filePath = "/tmp/test.txt";
If (!file_exists ($filePath)) {
die("File does not founds \n");
} else {
$file = fopen($filePath, 'a+');
Print "opening file successfully \n";
}
?>
سفارشی سازی و گزارش خطا ها
همچنین میتوان گفت که ساخت یک تابع سفارشیسازی شده برای مدیریت و گزارش خطاهای بهوجود آمده در زبان PHP، بسیار ساده است. بهسادگی میتوانیم تابعی تعریف کنیم که هر زمان خطایی در برنامهمان رخ داد، از آن تابع برای مدیریت خطاها استفاده شود. این تابع را میتوان بهسادگی با دو آرگومان ورودی تعریف کرد اما میتوانیم بهصورت دلخواه از هر 5 آرگومانی که دریافت میشوند هم استفاده کنیم. آرگومانهای ورودی شامل:
- errno: یک integer است که سطح خطا را مشخص میکند.
- errstr: یک string که حاوی پیام خطا است.
- errfile (اختیاری): پارامتر سوم نام فایلی است که خطا در آن ایجاد شده است.
- errline (اختیاری): یک integer است که شمارهی خطی که در آن خطا ایجاد شده است را در اختیار ما قرار میدهد.
- errcontext: دقت داشته باشید که این مورد در PHP 7.2 منسوخ (DEPRECATED) شده است.
در زبان PHP یک Error Handler داخلی وجود دارد، اما اگر بخواهیم خطاها را به روش خودمان مدیریت کنیم، میتوانیم از تابع set_error_handler()
استفاده کرده و تابع اختصاصی خودمان را توسعه دهیم.
<?php
// define error handler function
function customError($errno, $errstr) {
echo "<b>Error:</b> [$errno] $errstr";
}
// set error handler
set_error_handler("customError");
// make an error
echo($test);
?>
بهینهسازی عملکرد برنامههای PHP
عملکرد برنامههای PHP
سوالات متداول
در ادامه به سوالاتی که امکان دارد در این زمینه برای شما بدون پاسخ بماند، جوابهای کوتاه اما مفیدی دادهایم که با استفاده از آن میتوانید به سوال خود پاسخ صحیحی را بدهید.
دلیل اهمیت مدیریت خطا در PHP؟
مدیریت خطا در PHP باعث میشود مشکلات احتمالی سریعتر شناسایی شوند، امنیت برنامه افزایش یابد و تجربه کاربری بهتری ارائه شود.
تفاوت بین خطای syntax و runtime در PHP چیست؟
خطاهای syntax هنگام نوشتن کد و پیش از اجرا شناسایی میشوند، در حالی که خطاهای runtime در زمان اجرای برنامه و هنگام بروز شرایط خاص مانند باز نکردن فایل یا تقسیم بر صفر رخ میدهند.
تابع die()
در PHP چه کاربردی دارد؟
تابع die()
اجرای اسکریپت را متوقف میکند و پیام خطا را نمایش میدهد. از این تابع برای مدیریت سادهی خطاهای بحرانی استفاده میشود.
چطور می توانم در PHP یک Error Handler سفارشی تعریف کنیم؟
با استفاده از تابع set_error_handler()
میتوان یک تابع سفارشی برای مدیریت انواع خطاها تعریف کرد و ساختار نمایش آنها را کنترل نمود.
آیا در PHP امکان گزارش گیری پیشرفته از خطاها وجود دارد؟
بله، میتوان با سفارشیسازی تابع مدیریت خطا، پیامها را در فایل لاگ ذخیره کرده یا نمایش آنها را مطابق نیاز تنظیم کرد.
تابع set_error_handler()
در PHP چه زمانی استفاده می شود؟
هر زمان که بخواهید کنترل کاملتری روی نحوهی نمایش یا مدیریت خطاها داشته باشید، میتوانید از این تابع استفاده کرده و یک مدیریت شخصیسازی شده بسازید.
در نسخه های جدید PHP، آیا تغییراتی در مدیریت خطاها ایجاد شده است؟
بله، برخی آرگومانها مانند errcontext
از نسخه 7.2 به بعد منسوخ شدهاند و در نسخههای جدید، استفاده از Exceptionها و کلاسهای مربوط به آنها بیشتر توصیه میشود.
معرفی هاست رایگان PHP
هاست رایگان PHP
جمع بندی
مدیریت خطا در زبان PHP یکی از مهمترین جنبههای توسعه وب است که به افزایش کیفیت، امنیت و پایداری نرمافزار کمک میکند. استفاده از توابعی مانند die()
برای توقف اجرای برنامه در مواقع ضروری، و همچنین تعریف Error Handlerهای سفارشی با set_error_handler()
، امکاناتی هستند که توسعهدهندگان میتوانند از آنها برای کنترل دقیقتر رفتار برنامه در مواجهه با خطاها استفاده کنند.
با رعایت اصول مدیریت خطا، میتوانید برنامهای حرفهایتر، امنتر و قابل اعتمادتر بسازید.