سبد (0)

تبلیغات

مدیریت خطاها در JavaScript

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

دستور catch، خطاهای اتفاق افتاده در قسمت try را بررسی می کند.

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


دلیل اتفاقِ خطاها!

Wiki

زمانی که موتور JavaScript کدها را اجرا می کند، ممکن است خطاهای زیر اتفاق بیافتد:

  1. خطای املای دستورات (syntax error)، که معمولاً توسط برنامه نویس اتفاق می افتد.
  2. خطای گم شدگی خصوصیت (missing feature)، که ممکن است بخاطر تفاوت های بین مرورگرها و یا خطای املایی باشد.
  3. خطای ورودی اشتباه (wrong input)، که می تواند توسط یک کاربر باشد.

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


پرتاب خطا (Throw Error)

Wiki

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

اصطلاح تکنیکی برای این عمل، عبارت throw است (به معنی پرتاب کردن، به اصطلاح یک پیغام خطا به سمت catch پرتاب می شود)


try و catch در JavaScript

Wiki

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

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

try و catch ها همیشه جفت جفت می آیند.

نحوه استفاده

try
  {
  //Run some code here
  }
catch(err)
  {
  //Handle errors here
  }

مثال

در مثال زیر، در قسمت try، عمداً یک خطای املایی ایجاد کرده ایم.

قسمت catch خطایی که در try اتفاق افتاده را می گیرد و پیغام مناسب را چاپ می کند:

مثال (مدیریت خطاها در JavaScript)

<!DOCTYPE html>
<html>
<head>
<script>
var txt="";
function message()
{
try
  {
  adddlert("Welcome guest!");
  }
catch(err)
  {
  txt="There was an error on this page.\n\n";
  txt+="Error description: " + err.message + "\n\n";
  txt+="Click OK to continue.\n\n";
  alert(txt);
  }
}
</script>
</head>

<body>
<input type="button" value="View message" onclick="message()">
</body>

</html>
خودتان امتحان کنید »

دستور throw

Wiki

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

اصطلاح تکنیکی صحیح برای ایجاد خطا: عبارت "throw an exception" است.

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

نحوه استفاده

throw exception

exception می تواند یک رشته، یک عدد، یک داده Boolean و یا یک Object باشد.

مثال

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

مثال (مدیریت خطاها در JavaScript)

<script>
function myFunction()
{
try
  {
  var x=document.getElementById("demo").value;
  if(x=="")    throw "empty";
  if(isNaN(x)) throw "not a number";
  if(x>10)     throw "too high";
  if(x<5)      throw "too low";
  }
catch(err)
  {
  var y=document.getElementById("mess");
  y.innerHTML="Error: " + err + ".";
  }
}
</script>

<h1>My First JavaScript</h1>
<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="mess"></p>
خودتان امتحان کنید »

توجه داشته باشید که در مثال بالا اگر در تابع getElementById مشکلی رخ دهد، خطای مناسب با آن پرتاب (throw) خواهد شد. 

دیدگاه‌ها  

-8 # lpl,n 1396-05-12 21:29
اینقد توضیح اضافه ندید.مثلا میتونستید در مورد همون console میگفتید کافی بود.مشکل شماهایی که اموزش میدید اینه که خیلی قضیه رو پیچیده میکنید .
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # مهدی 1396-03-27 00:43
عالی بود.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+1 # salar5075 1396-02-20 12:12
آموزش مدیریت خطاها در JavaScript عالی بود.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # m1378 1395-05-08 13:39
سلام خسته نباشید.
سایتتون خیلی عالیه.
یه سوال:
شما توی مثال هاتون خیلی از خصوصیت هایی استفاده میکنین که تا حالا توضیحشون ندادین.
مثلا value. چیه؟
یا innerhtml. چیه؟
منظورم فقط این دوتا نیست.
میخوام بگم کی قراره اینا رو توضیح بدین.
متشکرم.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
0 # مسعود.z 1396-07-17 11:27
سلام دوست عزیز پیش نیاز جاوااسکریپت HTML و CSS
اول اینارو باید یاد بگیری تا به مشکل بر نخوری
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+3 # مهرداد صلاحی 1395-05-12 21:21
با عرض سلام و تشکر.
یکی از خصوصیات برنامه‌نویسی این هست که به جای دادن ماهی، ماهیگیری یاد بدیم.
توضیح این متدها نه تنها در اینجا، بلکه تقریبا میشه گفت در هیچ زبانی به طور کامل مرسوم نیست...
با کمی سرچ و کار کردن خودتون کامل دست‌تون میاد که هر متد چی کار میکنه.

مثلا value همونطور که از اسمش پیداست مقدار تگ یا المنت موردنظر رو در خودش داره و یا innerHTML در داخل اون المنت عناصر html رو قرار میده.
این رو دقت داشته باشید،‌که در بعضی مواقع میشه مقادیر رو خوند یا به اونها مقداری انتساب کرد.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # سلیمان 1394-11-19 09:25
سلام .خسته نباشید .واقعا وب سایتتون عالیه .
ببخشید منظوز از err.message در تکه کد زیر چیه؟
txt+="Error description:"+e rr.message+"\n\ n
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # مهرداد صلاحی 1394-11-19 13:54
با سلام و تشکر.
در اینجا err در واقع یک شئ هست که اطلاعات مربوط خطا را در خود نگهداری می‌کند. توسط خصوصیت message می‌توان به متن این خطا پی برد. در واقع عبارت err.message متن خطا رو بر می‌گردونه.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # amirkian 1394-05-22 12:43
برای اینکه بفهمیم خطایی در سایتمون رخ داده یا نه میتوان از قسمت inspector بخش کنسول به این قضیه پی برد.
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # احسان عباسی 1394-05-22 22:37
بله از بخش console خطاها را می توانید مشاهده کنید...
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # aaaaa 1394-04-25 01:03
سلام سایتتون خیلی عالیه
می خواهم وقتی رو دکمه کلیک می کنم نام دکمه عوض شود و وقتی دوباره رو آن کلیک می کنم نام به حالت اول تغییر کند اما قسمت دوم کد را نمی توانم انجام بدهم
ضمنا مثلا اگر روی دکمه ای کلیک کنم چگونه یک دکمه دیگر غیر فعال شود

function Rec(){
document.getElementById("but").value="Send";
}
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن
+2 # احسان عباسی 1394-04-25 12:18
برای عوض شدن نام دکمه کد زیر رو در یک ادیتور آنلاین ایجاد کردیم:
codepen.io/sbaloot/pen/Qbxexg

برای غیرفعال کردن یک دکمه ی دیگر، به آدرس زیر مراجعه نمایید:
www.w3schools.com/jsref/tryit.asp?filename=tryjsref_pushbutton_disabled2
پاسخ دادن | پاسخ به نقل قول | نقل قول کردن

آموزش صوتی JavaScript

بستن
مدرس:
سوال و جواب:

ابزاری که در پیش روی دارید یکی از ابزارهای بسیار کاربردی سایت بیاموز در زمینه آموزش است، این ابزار برای سهولت یادگیری شما کاربران محترم طراحی شده است.

فقط کافی است روی عنوان پاراگراف مورد نظرتان کلیک کنید تا پخش صدا آغاز شود ...!

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