ساختار دستوری onerror در جاوا اسکریپت
در این قسمت از آموزش جاوا اسکریپت به توضیح ساختار دستوری onerror در جاوا اسکریپت می پردازیم . استفاده از ساختار onerror ، روش قدیمی خطا یابی در طراحی سایت در زبان جاوا اسکریپت است .
در صفحه قبل ، نحوه استفاده از ساختار دستوری try-catch در جاوا اسکریپت را توضیح دادیم . از ساختار دستوری onerror در جاوا اسکریپت نیز برای خطایابی در صفحات وب ، ولی با روشی متفاوت استفاده می شود .
رویداد onerror ، هر زمان که خطایی در یک اسکریپت در صفحه به وجود بیاید ، تحریک شده و اتفاق می افتد . برای استفاده از رویداد onerror ، برنامه نویس باید تابعی را طراحی کند که خطا به وجود آمده در صفحه را مدیریت ( Handle ) کند . رویداد onerror در زمان بروز خطا ، تابع مدیریت خطا ( Event Handler Function ) را فراخوانی خواهد کرد ، که در این صورت دستورات پیش بینی شده برای مواجه با خطا اجرا خواهد شد .
تابع مدیریت خطا با ۳ پارامتر ( آرگومان ) ، به شرح زیر فراخوانی خواهد شد :
msg : متن پیام خطایی که توسط مرورگر تولید شده و شامل توضیحاتی راجع به error رخ داده است ، را ارائه می دهد .
url : مسیر کامل صفحه ای که خطا در آن اتفاق افتاده را شامل می شود .
l : شماره خط کدی که خطا در آن اتفاق افتاده است ، را نگهداری می کند .
شکل کلی تعریف یک ساختار onerror ، به همراه تابع مدیریت خطا به صورت زیر است :
onerror = نام تابع مدیریت خطا
function نام تابع مدیریت خطا ( )
{
دستورات مدیریت خطا
return false Or true
}
نکته مهم : تابع مدیریت خطا دارای یک مقدار بازگشتی است ، که توسط طراح و به وسیله دستور return تعیین می شود . این مقدار می تواند یکی از ۲ حالت True یا False باشد .این مقدار تعیین می کند که آیا مرروگر در هنگام بروز خطا ، علامت خطا را در نوار پایین مرورگر ( Status Bar ) نشان داده و گزارش استاندارد راجع به خطا به وجود آمده اعلام کند یا خیر .
در صورت تعیین و باز گرداندن مقدار True ، مررورگر در هنگام وقوع یک error ، در نوار Status Bar علامت و گزارش خطا را اعلام نمی کند ولی در صورت بازگرداندن مقدار False ، مرورگر در نوار پایین علامت خطا را نمایش داده و یک گزارش کامل از خطا را به صورت استاندارد اعلام می کند .
مثال : در مثال زیر یک تابع مدیریت خطا با نام ErrorHandler برای واکنش در زمان بروز خطا طراحی شده است . این تابع قرار است در هنکام بروز خطا یک کادر پیام حاوی توضیح نوع خطا ، آدرس کامل صفحه ای که خطا در آن روی داده و شماره خط کد اشتباه را به کاربر اعلام کند .
از طرف دیگر در تابع PageEroor ، یک اشتباه تایپی وجود دارد و به جای عبارت alert نوشته شده است alertt . این اشتباه باعث بروز خطا در صفحه شده که در نتیجه تابع مدیریت خطا فراخوانی شده و پیغام خود را نمایش می دهد . همچنین به علت باز گرداندن مقدار true توسط تابع مدیریت خطا ، مرورگر علامت خطا را در نوار Status Bar نشان نمی دهد :
<script type=”text/javascript”>
onerror = ErrorHandler
function ErrorHandler ( msg , url , l )
{
alert ( “Error Discription : ” + msg + “\nPage URL : ” + url + “\nLine Number : ” + l ) ;
return true ;
}
</script>
<script type=”text/javascript”>
function PageError ( )
{
alertt ( “developer” ) ;
}
</script>
<input type=”button” id=”BtnError” value=”Click to view error report” onclick=”PageError()” />
منبع: sitedesign-co.com