جسٹاگرافک خطا - تھر اور تری تو کیچ
- پچھلے پیج جسٹا سکریپت آپریٹر ترجیح
- پایین پیج جسٹا سکریپت اکچوائز
try
语句使您能够测试代码块中的错误。
catch
语句允许您处理错误。
throw
کلمه به شما اجازه میدهد که خطای سفارشی ایجاد کنید.
finally
使您能够执行代码,在 try 和 catch 之后,无论结果如何。
错误总会发生!
当执行 JavaScript 代码时,会发生各种错误。
错误可能是程序员的编码错误,由错误输入引起的错误,或者由于其他不可预见的问题。
مثال
在本例中,我们通过 adddlert
编写警告代码来故意制造了一个错误:
<script> تروی (ارور) { پیغام جاگرت ڈالتی ہے } کچ (ارور) { دسمنی پیغام جاگرت ڈالتی ہے } </script>
جیوسکریپٹ جیوسکریپٹ کا پیغام جاگرت ڈالتی ہے، کیچ میں پائی جاتی ہے اور اس کا پیغام بندل کیا جاتا ہے
جیوسکریپٹ کا جیوسکریپٹ تری اور کیچ
try
کوئی بغیر کسی پیغام کی طرح جاگرت ڈالتی ہے، جو کوئی پیغام جاگرت ڈالنے کیلئے کوڈ بلوک فراہم کرتی ہے
catch
کوئی بغیر کسی پیغام کی طرح جاگرت ڈالتی ہے، اگر جیوسکریپٹ کا کسی پیغام جاگرت ڈالا
کلمات معنوی JavaScript try
و catch
کوئی بغیر کسی پیغام کی طرح جاگرت ڈالتی ہے
تروی (ارور) { تست کیلئے کوڈ بلوک فراہم کیا گیا ہے } کچ (ارور) { غیر صحیح کا مطلب بنانے والا کوڈ بلوک }
جسٹرکسٹ جیوسکریپٹ بغیر کسی پیغام کی طرح جاگرت ڈالتی ہے
وقتی خطا رخ میدهد، JavaScript معمولاً متوقف شده و پیغام خطایی ایجاد میکند.
عبارت فنی به این صورت توضیح داده میشود:JavaScript استثنا (خطا) ایجاد میکند (خطا ایجاد میکند).
JavaScript در واقع یک استثنا (خطا) با دو ویژگی ایجاد میکند: شیء Error:name
و message
.
کلمه throw
throw
کلمه به شما اجازه میدهد که خطای سفارشی ایجاد کنید.
技术上 شما میتوانیداستثنا ایجاد کردن (ایجاد خطا).
استثنا میتواند یک رشته JavaScript، عدد، بولین یا شیء باشد:
throw "Too big"; // متن استثنا ایجاد میشود throw 500; // استثنا ایجاد میشود
اگر throw
با try
و catch
با استفاده از آنها، میتوانید جریان برنامه را کنترل کرده و پیغامهای خطای سفارشی ایجاد کنید.
مثال تأیید ورودی
این مثال ورودی را بررسی میکند. اگر مقدار اشتباه باشد، استثنا (خطا) ایجاد میشود.
این استثنا (خطا) توسط عبارت catch گرفته شده و پیغام خطای سفارشی نمایش داده میشود:
<!DOCTYPE html> <html> <body> <p>لطفاً عددی بین 5 و 10 وارد کنید:</p> <input id="demo" type="text"> <button type="button" onclick="myFunction()">ورودی را تست کنید</button> <p id="message"></p> <script> function myFunction() { var پیغام، x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; تروی (ارور) { if(x == "") throw "خالی"; if(isNaN(x)) throw "عدد نیست"; x = Number(x); if(x < 5) throw "خیلی کوچک"; if(x > 10) throw "بسیار بزرگ"; } کچ (ارور) { پیغام.innerHTML = "ورودی است " + خطا; } } </script> </body> </html>
تأیید HTML
این کد تنها یک مثال است.
مرورگرهای مدرن معمولاً JavaScript را با تأییدهای داخلی HTML ترکیب میکنند، از طریق استفاده از قوانین تأیید پیشتعریف شده که در ویژگیهای HTML تعریف شدهاند:
<input id="demo" type="number" min="5" max="10" step="1">
شما در بخشهای بعدی این آموزش بیشتر درباره تأیید فرمها یاد خواهید گرفت.
کلمه finally
finally
کلمه به شما اجازه میدهد که کدی را در پس از try و catch اجرا کنید، بدون توجه به نتیجه:
تروی (ارور) { // کد بلوکی برای تست } کچ (ارور) { // کد بلوکی برای مدیریت خطا } finally { // کد بلوکی که به هر صورت اجرا میشود }
مثال
function myFunction() { var پیغام، x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; تروی (ارور) { if(x == "") throw "خالی است"; if(isNaN(x)) throw "عدد نیست"; x = Number(x); if(x > 10) throw "خیلی بزرگ"; if(x < 5) throw "خیلی کوچک"; } کچ (ارور) { message.innerHTML = "خطا: " + err + "."; } finally { document.getElementById("demo").value = ""; } }
شیء Error
شیء error داخلی JavaScript دارای ویژگیهای داخلی برای ارائه اطلاعات خطا است.
شیء error دو ویژگی مفید ارائه میدهد:name
و message
.
ویژگیهای شیء Error
ویژگی | توضیح |
---|---|
name | تنظیم یا بازگشت نام خطا |
message | تنظیم یا بازگشت پیام خطا (یک رشته) |
Error Name Values
ویژگی name متغیر error شش مقادیر مختلف دارد:
نام خطا | توضیح |
---|---|
EvalError | خطایی که در داخل تابع eval() رخ داده است |
RangeError | خطای بیش از حد عددی رخ داده است |
ReferenceError | استناد غیرقانونی رخ داده است |
SyntaxError | خطای دستورالعمل رخ داده است |
تریپل اریئر | خطای نوع رخ داده است |
اری اریئر | خطاهایی که در encodeURI() رخ داده است |
در اینجا شش نوع مختلف از این مقادیر را برای شما توضیح میدهم.
خطای eval
EvalError
اشاره به خطای داخل تابع eval() نمیاندازد.
نسخههای بهروز JavaScript هیچ EvalError
لطفاً SyntaxError
جایگزین کنید.
خطای دامنه
RangeError
در زمان استفاده از عدد خارج از دامنه معتبر ارائه خواهد شد.
مثلاً: شما نمیتوانید تعداد دفعات اعشار عدد را به 500 تنظیم کنید.
مثال
وار نمبر = 1; تروی (ارور) { num.toPrecision(500); // عدد نمیتواند 500 عدد اعشار داشته باشد } کچ (ارور) { دوکومنٹ گیت آئیڈی بیلیو ('demo').اینرایل ایکسیووٹ = ارور.نام; }
خطای استناد
اگر شما از متغیری که قبلاً اعلام نشده است استفاده کنید (استناد) ReferenceError
ارائه خواهد شد:
مثال
var x; تروی (ارور) { x = y + 1; // y قابل استناد نیست (استفاده) } کچ (ارور) { دوکومنٹ گیت آئیڈی بیلیو ('demo').اینرایل ایکسیووٹ = ارور.نام; }
خطای دستورالعمل
اگر شما کدی با خطای دستورالعمل محاسبه کنید، SyntaxError
پر رکھا گیا:
مثال
تروی (ارور) { eval("alert('Hello')"); // کمبود ' میتواند منجر به خطا شود } کچ (ارور) { دوکومنٹ گیت آئیڈی بیلیو ('demo').اینرایل ایکسیووٹ = ارور.نام; }
خطا در نوع
اگر وضوح شما در دامنه مورد انتظار نیست، تریپل اریئر
پر رکھا گیا:
مثال
وار نمبر = 1; تروی (ارور) { نمبر اپر کی اور; // آپ نہیں اعداد کو بچولی کرسکتے } کچ (ارور) { دوکومنٹ گیت آئیڈی بیلیو ('demo').اینرایل ایکسیووٹ = ارور.نام; }
اری اریئر
اگر آپ نے یوری فنکشن میں غیر مجاز اشارتی چارجر استعمال کیا تو اری اریئر
پر رکھا گیا:
مثال
تروی (ارور) { ڈینکوڈ اوری ('%%%'); // آپ نہیں اس فیصدوں کو یوری انکوڈنگ کرسکتے ہیں } کچ (ارور) { دوکومنٹ گیت آئیڈی بیلیو ('demo').اینرایل ایکسیووٹ = ارور.نام; }
غیر معیاری جیوسٹارک بند کی اشارتی جیوسٹارک بند
مو زیلا اور میکروسافٹ نے غیر معیاری اشارتی جیوسٹارک بند کی تعریف کی ہے:
- فائل نمبر (مو زیلا)
- لائن نمبر (مو زیلا)
- کولم نمبر (مو زیلا)
- استیک (مو زیلا)
- ڈسکریپشن (مایکروسافٹ)
- نمبر (مایکروسافٹ)
یہ انیٹ کا استعمال پبلک ویب سائٹوں میں نہ کریں۔ یہ انیٹ تمام براوزروں میں کام نہیں کرتا
- پچھلے پیج جسٹا سکریپت آپریٹر ترجیح
- پایین پیج جسٹا سکریپت اکچوائز