٪۴۰ تخفیف تابستانه شروع شد! بزرگترین حراج سال ما

به ما بپیوندید

آموزش خطاهای جاوا اسکریپت

این tryدستور به شما امکان می دهد مجموعه ای از کد را برای خطاها آزمایش کنید. این catchدستور به شما امکان می دهد خطا را کنترل کنید. این throwدستور به شما امکان می دهد خطاهای سفارشی ایجاد کنید. این finallyدستور به شما امکان می…

محمد یوسفی

20 جولای 2021

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

این catchدستور به شما امکان می دهد خطا را کنترل کنید.

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

این finallyدستور به شما امکان می دهد بدون توجه به نتیجه ، پس از امتحان و گرفتن کد ، کد را اجرا کنید.


خطاها اتفاق خواهد افتاد!

هنگام اجرای کد JavaScript ، خطاهای مختلفی رخ می دهد.

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

مثال

در این مثال ما “هشدار” را به اشتباه “adddlert” نوشتیم تا عمدا خطایی ایجاد کنیم:

<p id="demo"></p>

<script>
try {
  adddlert("Welcome guest!");
}
catch(err) {
  document.getElementById("demo").innerHTML = err.message;
}
</script>

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


جاوا اسکریپت را امتحان کنید و بگیرید

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

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

دستورات جاوا اسکریپت tryو catch بصورت جفت می آیند:

try {
  Block of code to try
}
catch(err) {
  Block of code to handle errors
}

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

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

اصطلاح فنی برای این عبارت است: JavaScript یک استثنا را ایجاد می کند (یک خطا را پرتاب می کند) .

جاوا اسکریپت در واقع یک شی Er Error با دو ویژگی ایجاد می کند: نام و پیام .


بیانیه پرتاب

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

از نظر فنی می توانید یک استثنا را پرتاب کنید (خطا را پرتاب کنید) .

استثنا می تواند JavaScript String، a Number، a Booleanیا an باشد Object:

throw "Too big";    // throw a text
throw 500;          // throw a number

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


مثال اعتبار سنجی ورودی

این مثال ورودی را بررسی می کند. اگر مقدار اشتباه باشد ، یک استثنا (خطا) پرتاب می شود.

استثنا (خطا) توسط عبارت catch گیر می شود و یک پیام خطای سفارشی نمایش داده می شود:

<!DOCTYPE html>
<html>
<body>

<p>Please input a number between 5 and 10:</p>

<input id="demo" type="text">
<button type="button" onclick="myFunction()">Test Input</button>
<p id="p01"></p>

<script>
function myFunction() {
  const message = document.getElementById("p01");
  message.innerHTML = "";
  let x = document.getElementById("demo").value;
  try {
    if(x == "") throw "empty";
    if(isNaN(x)) throw "not a number";
    x = Number(x);
    if(x < 5) throw "too low";
    if(x > 10) throw "too high";
  }
  catch(err) {
    message.innerHTML = "Input is " + err;
  }
}
</script>

</body>
</html>

اعتبار سنجی HTML

کد بالا فقط یک مثال است.

مرورگرهای مدرن اغلب از ترکیبی از اعتبار سنجی JavaScript و داخلی با استفاده از قوانین اعتبار سنجی از پیش تعریف شده تعریف شده در ویژگی های HTML استفاده می کنند:

<input id="demo" type="number" min="5" max="10" step="1">

می توانید اطلاعات بیشتری در مورد اعتبار سنجی فرم ها را در فصل بعدی این آموزش بیاموزید.


بیانیه سرانجام

این finallyدستور به شما امکان می دهد بدون توجه به نتیجه ، پس از امتحان و گرفتن کد ، کد را اجرا کنید:

نحو

try {
  Block of code to try
}
catch(err) {
  Block of code to handle errors
}
finally {
  Block of code to be executed regardless of the try / catch result
}

مثال

function myFunction() {
  const message = document.getElementById("p01");
  message.innerHTML = "";
  let 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 = "Error: " + err + ".";
  }
  finally {
    document.getElementById("demo").value = "";
  }
}

شی Er خطا

جاوا اسکریپت یک شی error خطای داخلی دارد که هنگام بروز خطا اطلاعات خطا را ارائه می دهد.

شی error خطا دو ویژگی مفید را ارائه می دهد: نام و پیام.


خواص شیject خطا

خطای عیب

EvalErrorنشان می دهد یک خطا در تابع eval ().

نسخه های جدید JavaScript EvalError را پرتاب نمی کند. به جای آن از SyntaxError استفاده کنید.


خطای محدوده

RangeErrorاگر از عددی استفاده کنید که خارج از محدوده مقادیر قانونی باشد ، A پرتاب می شود.

به عنوان مثال: شما نمی توانید تعداد ارقام قابل توجه یک عدد را روی 500 تنظیم کنید.

مثال

let num = 1;
try {
  num.toPrecision(500);   // A number cannot have 500 significant digits
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

خطای مرجع

ReferenceErrorپرتاب می شود در صورت استفاده از (مرجع) یک متغیر است که اعلام نشده است:

مثال

let x = 5;
try {
  x = y + 1;   // y cannot be used (referenced)
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

اشتباه نوشتاری

SyntaxErrorاگر سعی کنید کد را با خطای نحوی ارزیابی کنید ، پرتاب می شود.

مثال

try {
  eval("alert('Hello)");   // Missing ' will produce an error
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

خطا را تایپ کنید

TypeErrorاگر از مقداری خارج از محدوده انواع مورد انتظار استفاده کنید ، A پرتاب می شود:

مثال

let num = 1;
try {
  num.toUpperCase();   // You cannot convert a number to upper case
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

خطای URI (شناسه منبع یکنواخت)

URIErrorاگر از کاراکترهای غیرقانونی در عملکرد URI استفاده کنید ، A پرتاب می شود:

مثال

try {
  decodeURI("%%%");   // You cannot URI decode percent signs
}
catch(err) {
  document.getElementById("demo").innerHTML = err.name;
}

خصوصیات شیject خطای غیر استاندارد

Mozilla و Microsoft برخی از خصوصیات شی properties خطای غیر استاندارد را تعریف می کنند:

fileName (موزیلا)
خط شماره ستون (موزیلا)
تعداد (موزیلا) شرح
پشته (موزیلا)
شماره (مایکروسافت) شماره (مایکروسافت)

از این خصوصیات در وب سایت های عمومی استفاده نکنید. آنها در همه مرورگرها کار نمی کنند.

منبع

مطالب مرتبط

0 0 رای ها
امتیازدهی به مقاله
اشتراک در
اطلاع از
guest
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها