জেভাস্ক্রিপ্ট এর্রর - থ্রো এবং ট্রাই টু ক্যাচ
- পূর্ববর্তী পৃষ্ঠা জেএস অপারেটর প্রাথমিকতা
- পরবর্তী পৃষ্ঠা জেএস স্কোপ
try
এই বিধানটি আপনাকে কোড ব্লকের ত্রুটি পরীক্ষা করার অনুমতি দেয়
catch
এই বিধানটি আপনাকে ত্রুটি প্রক্রিয়াকরণের অনুমতি দেয়
throw
বিন্যাসটি আপনাকে কাস্টম ত্রুটি তৈরি করার অনুমতি দেয়。
finally
এটি আপনাকে কোড চালু করতে সহায়তা করে, try এবং catch-এর পরে, ফলাফল কোনও হোক না কেন
ত্রুটি চালু হবে!
জেভাস্ক্রিপ্ট কোড চালু করার সময়, বিভিন্ন ত্রুটি হতে পারে
ত্রুটি প্রক্রিয়াকরণকারীর কোডিং ত্রুটি, ত্রুটি ইনপুটের কারণে উদ্ভূত ত্রুটি, বা অন্যান্য অপরিকল্পিত সমস্যার কারণে হতে পারে
ইনস্ট্যান্স
এই উদাহরণে, আমরা adddlert
একটি ত্রুটি তৈরি করতে প্রত্যাশা করে একটি সতর্কতা কোড লিখুন:
<p id="demo"></p> <script> try { adddlert("স্বাগত জানাই!"); } catch(err) { document.getElementById("demo").innerHTML = err.message; } </script>
জেভাস্ক্রিপ্ট একটি adddlert-কে ত্রুটি হিসাবে ধরে, এবং ত্রুটি প্রক্রিয়াকরণের কোড চালু করে
জেভাস্ক্রিপ্ট try এবং catch
try
এই বিধানটি একটি কোড ব্লক নির্দিষ্ট করতে অনুমতি দেয়, যাতে কোড ব্লক চালু হলে ত্রুটি পরীক্ষা করা যায়
catch
এই বিধানটি একটি কোড ব্লক নির্দিষ্ট করতে অনুমতি দেয়, যদি try কোড ব্লকে কোনও ত্রুটি হয়
คำสั่ง JavaScript try
এবং catch
এককক্ষমত্তা:
try { পরীক্ষার জন্য কোড ব্লক } catch(err) { ত্রুটি প্রক্রিয়াকরণের কোড ব্লক }
জেভাস্ক্রিপ্ট একটি ত্রুটি ফেলে
যখন ত্রুটি হয়, JavaScript সাধারণত বন্ধ হয় এবং একটি ত্রুটি বার্তা উৎপন্ন করে।
প্রযুক্তিগত শব্দব্যঞ্জনা এইভাবে বর্ণনা করা হয়:JavaScript একটি অস্ত্র (ত্রুটি) ফেলুন (ত্রুটি ফেলুন)。
JavaScript একটি দুই বৈশিষ্ট্যসম্পন্ন Error ওবজেক্ট:name
এবং message
。
throw 语句
throw
বিন্যাসটি আপনাকে কাস্টম ত্রুটি তৈরি করার অনুমতি দেয়。
কার্যতত্ত্বে, আপনিঅস্ত্র (ত্রুটি) ফেলুন (ত্রুটি ফেলুন)。
অস্ত্রটি হতে পারে JavaScript স্ট্রিং, সংখ্যা, বুল বা অবজেক্ট:
throw "Too big"; // টেক্সট ফেলুন throw 500; // সংখ্যা ফেলুন
যদি throw
সঙ্গে try
এবং catch
একসঙ্গে ব্যবহার করলে, প্রগতিপথকে নিয়ন্ত্রণ করা এবং কাস্টম ত্রুটি বার্তা তৈরি করা সম্ভব হবে。
প্রবেশ ভ্রূণিকরণ ক্ষেত্র
এই উদাহরণটি প্রবেশকে পরীক্ষা করবে। যদি মান ভুল হয়, তবে একটি অস্ত্র (err) ফেলে হবে。
এই অস্ত্র (err) 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 message, x; message = document.getElementById("message"); message.innerHTML = ""; x = document.getElementById("demo").value; try { if(x == "") throw "খালি"; if(isNaN(x)) throw "সংখ্যা নয়"; x = Number(x); if(x < 5) throw "কম হল"; if(x > 10) throw "বেশি হল"; } catch(err) { message.innerHTML = "প্রবেশ হল " + err; } } </script> </body> </html>
HTML ভ্রূণিকরণ
এই কোডটি শুধুমাত্র একটি উদাহরণই।
আধুনিক ব্রাউজারগুলি সাধারণত JavaScript-এর সাথে স্থাপিত হয় এবং HTML ভ্রূণিকরণকে মিলিয়ে দিয়ে, HTML প্রতিমার সমূহ নির্দিষ্ট ভ্রূণিকরণ নিয়মগুলি ব্যবহার করে:
<input id="demo" type="number" min="5" max="10" step="1">
এই টিউটোরিয়ালের পরবর্তী চাপগুলিতে আপনি ফর্ম ভ্রূণিকরণ নিয়ে আরও বেশি জানতে পাবেন。
finally 语句
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 "খালি"; if(isNaN(x)) throw "সংখ্যা নয়"; x = Number(x); if(x > 10) throw "একটু বড়"; if(x < 5) throw "একটু ছোট"; } catch(err) { message.innerHTML = "ত্রুটি: " + err + "."; } finally { document.getElementById("demo").value = ""; } }
Error ওবজেক্ট
JavaScript এর মধ্যে error ওবজেক্ট সংগ্রহকারী নিহিত ত্রুটির সূচনা প্রদান করে
error ওবজেক্ট দুটি উপযোগী প্রকৃতি প্রদান করে:name
এবং message
。
Error ওবজেক্ট প্রকৃতির প্রকৃতি
প্রকৃতি | ব্যাখ্যা |
---|---|
name | ত্রুটির নাম সেট করা বা ফেরত দেওয়া |
message | ত্রুটির বার্তা (একটি শব্দমালা) সেট করা বা ফেরত দেওয়া |
Error Name Values
error এর name প্রকৃতি ছয়টি ভিন্ন মান ফেরত দিতে পারে:
ত্রুটির নাম | ব্যাখ্যা |
---|---|
EvalError | eval() ফাংশনের ত্রুটি হয়েছে |
RangeError | সংখ্যার সীমার বাইরে ত্রুটি হয়েছে |
ReferenceError | অবৈধ যুক্ত করা ত্রুটি হয়েছে |
SyntaxError | বাক্যসাংখ্য ত্রুটি হয়েছে |
TypeError | ধরন ত্রুটি হয়েছে |
URIError | encodeURI() এ হওয়া ত্রুটি |
আমরা এই ছয়টি ভিন্ন মানের বিষয়টি বিস্তারিতভাবে ব্যাখ্যা করব।
Eval ত্রুটি
EvalError
eval() ফাংশনের ত্রুটিকে সূচক করে
নতুন সংস্করণের JavaScript কোনও ত্রুটি ফেলে না EvalError
。অনুগ্রহ করে SyntaxError
প্রতিস্থাপন
পরিমাণ ত্রুটি
RangeError
আপনি যদি অবশ্যক মানের সাথে ব্যবহার করেন না, তবে ফেলে যাবে。
উদাহরণ: আপনি সংখ্যার প্রমাণ সংখ্যা 500 করে নিতে পারেন না。
ইনস্ট্যান্স
var num = 1; try { num.toPrecision(500); // সংখ্যা 500টি প্রমাণ সংখ্যা নিয়ে থাকতে পারে না } catch(err) { ডকুমেন্ট.getElementById("demo").innerHTML = err.name; }
যুক্ত করা ত্রুটি
আপনি যদি অবশ্যক বলা যান না এমন বদলকরণকারী বস্তুকে (যুক্ত করেন) ব্যবহার করেন, তবে ReferenceError
ফেলে যাবে:
ইনস্ট্যান্স
var x; try { x = y + 1; // y যুক্ত করা যায় না (ব্যবহার করা হবে) } catch(err) { ডকুমেন্ট.getElementById("demo").innerHTML = err.name; }
বাক্যসাংখ্য ত্রুটি
আপনি যদি বাক্যসাংখ্য ত্রুটির হাস্তাক্ষর করা কোড গণনা করেন, তবে SyntaxError
প্রলোচনা করা হয়:
ইনস্ট্যান্স
try { eval("alert('Hello)"); // ' ছাড়া তো ত্রুটি হবে } catch(err) { ডকুমেন্ট.getElementById("demo").innerHTML = err.name; }
ধরন ত্রুটি
আপনি যদি অপেক্ষা করা মানের সাথে মানোন্নয়ন করেন না, তবে TypeError
প্রলোচনা করা হয়:
ইনস্ট্যান্স
var num = 1; try { num.toUpperCase(); // আপনি সংখ্যা কে উচ্চস্থানীয় করতে পারবেন না } catch(err) { ডকুমেন্ট.getElementById("demo").innerHTML = err.name; }
URI ত্রুটি
যদি আপনি URI ফাংশনে অনৈতিহাসিক অক্ষর ব্যবহার করেন URIError
প্রলোচনা করা হয়:
ইনস্ট্যান্স
try { decodeURI("%%%"); // আপনি এই শতকরা সংখ্যা নিয়ে URI এনকোডিং করতে পারবেন না } catch(err) { ডকুমেন্ট.getElementById("demo").innerHTML = err.name; }
অস্তর্গত Error অবজেক্ট প্রতিশব্দ
মোজিলা এবং মাইক্রোসফট অস্তর্গত error অবজেক্ট প্রতিশব্দ নির্দিষ্ট করেছে
- ফাইল নাম (মোজিলা)
- লাইন নম্বর (মোজিলা)
- কলাম নম্বর (মোজিলা)
- স্ট্যাক (মোজিলা)
- ডিসক্রিপশন (মাইক্রোসফট)
- নম্বর (মাইক্রোসফট)
এই প্রকার প্রতিযোগিতা সাইটে ব্যবহার করুন না। এইসব প্রতিযোগিতা সব ব্রাউজারেই কাজ করবে না。
- পূর্ববর্তী পৃষ্ঠা জেএস অপারেটর প্রাথমিকতা
- পরবর্তী পৃষ্ঠা জেএস স্কোপ