مدیریت خطاها در جاوا اسکریپت

ناصر نادری | 1393/12/06


بنام  خدا .

با سلام خدمت دوستان گرامی . امروز میخواییم در مورد مدیریت خطا ها در جاوا اسکریپت صحبت کنیم .

اگه قبلا با زبانهایی مثل جاوا یا C# برنامه نویسی کرده باشید ,  خیلی ساده با مدیریت خطا در جاوا اسکریپت هم آشنا خواهید شد.

برای اینکار ما از چند بلاک استفاده میکنیم که توضیحشون به شرح زیر هست :

try : این بلاک بخشی که ما کدی که قراره اجرابشه رو مینویسیم .

catch :  تو این بخش  کدی رو که در هنگام وقوع خطا باید اجرا بشه مینویسیم .

finally : کدی که توی این بلاک مینویسیم در هر صورت اجرا خواهد شد چه خطایی رخ بده یا نه .

ساختار نوشتن این بلاکها به شکل زیر هست :


try {
    //کدی که قرار هست اجرا و خطا یابی بشه
}
catch(err) {
    //کدی که زمان وقوع خطا باید اجرا بشه
}
finally {
    //کدی که در هر حال میخواییم اجرا بشه
}

به مثال زیر توجه کنید :


<html>
<body>

<span id="ErrorMessage"></span>

<script>
try {
var s="AppinApps";
document.writes(s);//دقت کنید که دستور write غلط نوشته شده


}
catch(err) {
document.getElementById("ErrorMessage").innerHTML = err.message;//چاپ پیغام خطای سیستمی
}
</script>

</body>
</html>

نتیجه اجرای کد بالا :


document.writes is not a function

توی کد بالا سعی کردیم از متد اشتباه writes بجای write استفاده کنیم که این عمل باعث ایجاد یک خطا شد .

با کلمه کلیدی throw میتونیم خطای سفارشی خودمون رو بنویسیم . مثلا وقتی کاربر عددی رو بیشتر از اونی که ما میخوایم وارد کرد پیغام مناسبی رو  بصورت اعلام خطا اجرا کنیم .

نکته : throw هم میتونه  مقدار رشته برگردنه هم عددی


<html>
<body>

<h1>Perosnal Information</h1>
name :
<input id="name" type="text">
age :
<input id="age" type="text">
<button type="button" onclick="validate()">Save</button>
<hr />
<p id="ResultMsg"></p>

<script>
function validate() {
    var name = document.getElementById("name").value;
    var age = document.getElementById("age").value;
    try {
        age = Number(age);
        if(age == "") throw "لطفا سن خود را وارد کنید";
        if(isNaN(age)) throw "فرمت سن نامعتبر است";
        if(age < 18) throw "سن شما پایین است";

    }
    catch(err) {
        ResultMsg.innerHTML = err;
    }
    finally{//این بلاک (اختیاری) در هر صورت اجرا خواهد شد 
        
document.getElementById("name").value="";//در هر مرحله محتوای جعبه متن های ورودی نام و سن رو پاک میکنیم
        
document.getElementById("age").value="";
    }
}
</script>

مثال بالا همچنین  نحوه استفاده از بلاک (اختیاری ) finally رو نشون میده .

تا یک جلسه بعد در پناه حق.

 


فایلهای ضمیمه
توجه! هیچ فایل ضمیمه ای برای این مطلب یافت نشد

نظرات شما نظر جدید