سلام به شما دوستان خوب وگرامی ، حالتون که خوبه؟ با این بخش مدیریت خطا در خدمتون هستم.

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

دستور try به شما امکان می دهد قطعه کد (code block) را به منظور یافتن خطاهای احتمالی بررسی و آزمایش کنید.

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

دستور throw قابلیت ایجاد خطاهای سفارشی را به شما می دهد.

Finally به شما اجازه می دهد کد را پس از (اجرای دستورات) try و catch، صرف از نظر از نتیجه آن، اجرا کنید.

هنگامی که کدهای جاوا اسکریپت را اجرا می کنید، ممکن است با خطاهای مختلفی مواجه شویم.

این خطاها ممکن است از وجود اشکال هایی در کدنویسی برنامه نشات بگیرد که توسط برنامه نویس نوشته شده، ممکن است از ورودی اشتباه و غیر مجازی باشد که توسط کاربر وارد شده و یا دیگر چیزهای غیر قابل پیش بینی.


نمونه یک
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰

adddlert is not defined

try {
adddlert(“Welcome guest!”);
}
catch(err) {
document.getElementById(“demo”).innerHTML = err.message;
}

دستورات try & catch و کاربرد آن در زبان جاوا اسکریپت

دستور try به برنامه نویس اجازه می دهد قطعه کدی که احتمال می دهد در آن خطا وجود داشته باشد را مشخص کند. این قطعه کد در حین اجرا برای خطایابی تست می شود.

دستور catch نیز یک قطعه کد تعریف می کند که در صورت برخورد با خطا در ساختار (try block)، اجرا می شود.

عبارت try، به شما اجازه می دهد تا، خطاهای یک بلاک از دستورات را تست کنید.

اگر خطایی در قسمت try رخ دهد، در آن صورت دستوراتی که در در ساختار catch تعریف کردید، اجرا می شوند.

توجه داشته باشید که دستورات try و catch با هم و به صورت جفت بکار می روند.

try {

‎ Block of code to try

‎}

catch(err) {

‎ Block of code to handle errors

‎}‎

throw error (پرتاب خطا)

هنگامی که خطایی رخ می دهد، جاوا اسکریپت به صورت خودکار متوقف شده و یک پیغام خطا صادر می کند.

در برنامه نویسی برای این منظور یک واژه ی تخصصی به نام throw تعریف شده است.

دستور throw

این دستور امکان ایجاد یک خطاهای سفارشی (custom error) را در اختیار برنامه نویس قرار می دهد.

اصطلاح تخصصی که برای این منظور (ایجاد خطای سفارشی) در نظر گرفته شده throwing an exception می باشد.

دستور throw باید همراه try و catch استفاده شود.

Exception (استثنا) می تواند یک شی String، Number، یک Boolean و یا یک Object باشد.

throw “Too big”; // throw a text

throw 500; // throw a number‎

اگر throw را به همراه try و catch بکار ببرید، می توانید جریان برنامه را تحت کنترل خود درآورده و پیغام های خطا سفارشی ایجاد کنید.

اعتبارسنجی ورودی (input validation)

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

نمونه دو
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵

function myFunction() {
var message, x;
message = document.getElementById(“message”);
message.innerHTML = “”;
x = document.getElementById(“demo”).value;
try {
if(x == “”) throw “empty”;
if(isNaN(x)) throw “not a number”;
x = Number(x);
if(x 10) throw “too high”;
}
catch(err) {
message.innerHTML = “Input is ” + err;
}

دستور Finally

این دستور به شما اجازه می دهد کد را پس از اجرای ساختارهای try & catch و صرف نظر از نتیجه ی بدست آمده اجرا کنید.

try {

‎ ‎قطعه کدی که برای خطایابی بررسی می شود‎

‎}

catch(err) {

‎ ‎قطعه کدی که خطا در آن مهار و مدیریت می شود‎

‎}

finally {

‎ ‎قطعه کدی که صرف نظر از نتیجه ی دو ساختار فوق اجرا می شود ‏‎

‎}‎

مثال

نمونه سه
?
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
۱۳
۱۴
۱۵
۱۶
۱۷
۱۸

function myFunction() {
var message, x;
message = document.getElementById(“message”);
message.innerHTML = “”;
x = document.getElementById(“demo”).value;
try {
if(x == “”) throw “is empty”;
if(isNaN(x)) throw “is not a number”;
x = Number(x);
if(x > 10) throw “is too high”;
if(x < 5) throw "is too low";
}
catch(err) {
message.innerHTML = "Input " + err;
}
finally {
document.getElementById("demo").value = "";
}