0

مدیریت استثناها و خطاها در جاوا اسکریپت – بخش اول

 
amirpetrucci0261
amirpetrucci0261
کاربر طلایی1
تاریخ عضویت : تیر 1388 
تعداد پست ها : 27726
محل سکونت : http://zoomstar.ir/

مدیریت استثناها و خطاها در جاوا اسکریپت – بخش اول

در جاوا اسکریپت هم میتوانیم مدیریت خطا داشته باشیم! شاید این کار برای بسیاری از برنامه نویسانی که آشنایی چندانی با جاوا اسکریپت ندارند عجیب باشد اما این کار شدنی است!
منظور از مدیریت خطا، مدیریت خطای زمان اجرا است. گاهی اوقات در زمان اجرا خطاهای پیش بینی نشده ای رخ میدهد که عدم مدیریت آنها متیواند منجر به کارکرد نادرست صفحه وب و در نتیجه زیر سوال رفتن کل برنامه گردد.
در این مقاله خواهیم آموخت که چگونه میتوانیم خطاهای زمان اجرا را مدیریت کنیم.
برای مدیریت خطا در جاوا اسکریپت دو راه وجود دارد. راه اول که یک راه قدیمی میباشد، استفاده از رخدادی به نام onerror میباشد. این رخداد زمانی فعال میشود که در قطعه کد جاوا اسکریپت نوشته شده، خطایی رخ دهد. پس از رخ دادن خطا و فعال شدن این رخداد، تابعی که در تعریف این رخداد مشخص کرده ایم فراخوانی میشود. این تابع را ما خودمان تعریف میکنم و در آن کدهای مربوط به مدیریت خطا را مینویسیم.
برای تعریف کردن این رخداد این گونه رفتار میکنیم:

<script type="text/javascript">
onerror=handleErr;

در تعریف بالا مشخص کرده ایم که پس از رخ دادن خطا، تابعی به نام handleErr که ما تعریف کرده ایم، میباید فراخوانی شده و خطا را مدیریت کند.


تابع تعریف شده میباید 3 آرگومان ورودی داشته باشد. اولین آرگومان پیغام خطایی است که مرورگر به این تابع ارسال میکند. آرگومان دوم آدرس صفحه و آرگومان سوم شماره خطی که خطا در آن رخ داده را مشخص میکند.


این تابع میتواند چیزی شبیه به این باشد:

var txt="";
function handleErr(msg,url,l)
{
txt="There was an error on this page.\n\n";
txt+="Error: " + msg + "\n";
txt+="URL: " + url + "\n";
txt+="Line: " + l + "\n\n";
txt+="Click OK to continue.\n\n";
alert(txt);
return true;
}
</script>

بنابراین در این صفحه هر زمان که خطایی رخ دهد، مشخصات آن خطا به کاربر نشان داده خواهد شد. البته در این جا منظور از کاربر، همان کاربر برنامه نویس است که در حال توسعه و تست برنامه است. مسلما در زمان اجرا به کاربر معمولی هرگز نباید محتویات خطا نشان داده شود و به جای آن میتوان پیغام خطای سفارشی خودمان را به کاربر نشان دهیم.


کد برنامه فوق چنین است:

<html>
<head>
<script type="text/javascript">
onerror=handleErr;
var txt="";
function handleErr(msg,url,l)
{
txt="There was an error on this page.\n\n";
txt+="Error: " + msg + "\n";
txt+="URL: " + url + "\n";
txt+="Line: " + l + "\n\n";
txt+="Click OK to continue.\n\n";
alert(txt);
return true;
}
function message()
{
adddlert("Welcome guest!");
}
</script>
</head>
<body>
<input type="button" value="View message" onclick="message()" />
</body>
</html>

چهارشنبه 10 آذر 1389  10:07 PM
تشکرات از این پست
دسترسی سریع به انجمن ها