பிழைகள் நடக்கும்!
JavaScript குறியீட்டை இயக்கும்போது, பல்வேறு பிழைகள் ஏற்படலாம்.
பிழைகள் புரோகிராமர் செய்த குறியீட்டு பிழைகள், தவறான உள்ளீடு காரணமான பிழைகள் மற்றும் பிற கணிக்க முடியாத விஷயங்கள்:
JavaScript பிழைகளை எவ்வாறு கையாள்வது
try அறிக்கை பிழைகளுக்காக சோதிக்கப்பட வேண்டிய ஒரு குறியீடு தொகுதியை வரையறுக்க உங்களை அனுமதிக்கிறது.
catch அறிக்கை try தொகுதியில் பிழை ஏற்பட்டால் செயல்படுத்தப்பட வேண்டிய ஒரு குறியீடு தொகுதியை வரையறுக்க உங்களை அனுமதிக்கிறது.
JavaScript try மற்றும் catch அறிக்கைகள் ஜோடிகளாக வருகின்றன:
try {
// சோதிக்கப்பட வேண்டிய குறியீடு தொகுதி
} catch(err) {
// பிழைகளைக் கையாளும் குறியீடு தொகுதி
}
Error Handling முக்கியத்துவம்:
try...catch அறிக்கைகள் உங்கள் நிரல்களை எதிர்பாராத பிழைகளுக்கு இடையூறு இல்லாமல் தொடர அனுமதிக்கின்றன, இது மிகவும் நம்பகமான மற்றும் பயனர் நட்பு பயன்பாடுகளை உருவாக்க உதவுகிறது.
Reference Errors
இல்லாத மாறியைப் பயன்படுத்தினால் (குறிப்பிட்டால்) ReferenceError ஏற்படுகிறது.
| பிழை வகை | எடுத்துக்காட்டு | பிழை |
|---|---|---|
| ReferenceError | fname = foo; | foo வரையறுக்கப்படவில்லை |
| ReferenceError | let x = y; let y = 5; |
துவக்கப்படுவதற்கு முன் y ஐ அணுக முடியாது |
எடுத்துக்காட்டுகள்
இல்லாத மாறியைப் பயன்படுத்த முடியாது:
let x = 5;
try {
x = y + 1;
} catch(err) {
let text = err.name;
}
துவக்கப்படுவதற்கு முன் மாறியை அணுக முடியாது:
try {
let x = y;
let y = 5;
} catch(err) {
let text = err.name;
}
JavaScript Type Errors
ஒரு மதிப்பு தவறான வகையில் இருக்கும்போது அல்லது அந்த வகையில் ஒரு செயல்பாடு தவறானதாக இருக்கும்போது Type Error ஏற்படுகிறது.
| பிழை | எடுத்துக்காட்டு | பிழை செய்தி |
|---|---|---|
| TypeError | Anna(5); | Anna ஒரு செயல்பாடு அல்ல |
| Type Error | let num = 1; num.toUpperCase(); |
num.toUpperCase ஒரு செயல்பாடு அல்ல |
எடுத்துக்காட்டுகள்
Anna() ஒரு செயல்பாடு அல்ல:
try {
Anna(5);
} catch(err) {
let text = err.name;
}
ஒரு எண்ணை மேல் வழக்குக்கு மாற்ற முடியாது:
let num = 1;
try {
num.toUpperCase();
} catch(err) {
let text = err.name;
}
JavaScript Range Errors
ஒரு மதிப்பு அதன் செல்லுபடியாகும் வரம்பிற்கு வெளியே இருக்கும்போது RangeError ஏற்படுகிறது.
| பிழை வகை | எடுத்துக்காட்டு | பிழை செய்தி |
|---|---|---|
| RangeError | new Array(-1); | தவறான வரிசை நீளம் |
| RangeError | num.toPrecision(500); | toPrecision() வாதம் 1 மற்றும் 100 க்கு இடையில் இருக்க வேண்டும் |
எடுத்துக்காட்டுகள்
வரிசை உறுப்புகளின் எண்ணிக்கையை -1 ஆக அமைக்க முடியாது:
try {
new Array(-1);
} catch(err) {
let text = err.name;
}
ஒரு எண்ணின் குறிப்பிடத்தக்க இலக்கங்களின் எண்ணிக்கையை 500 ஆக அமைக்க முடியாது:
let num = 1;
try {
num.toPrecision(500); // ஒரு எண்ணுக்கு 500 குறிப்பிடத்தக்க இலக்கங்கள் இருக்க முடியாது
} catch(err) {
let text = err.name;
}
JavaScript URI Errors
(Uniform Resource Identifier Errors)
நீங்கள் ஒரு URI செயல்பாட்டில் சட்டவிரோத எழுத்துக்களைப் பயன்படுத்தினால் URIError ஏற்படுகிறது:
| பிழை வகை | எடுத்துக்காட்டு | பிழை செய்தி |
|---|---|---|
| URIError | decodeURI("%%%"); | URI மோசமாக வடிவமைக்கப்பட்டது |
எடுத்துக்காட்டு
try {
decodeURI("%%%"); // நீங்கள் சதவீத அடையாளங்களை URI டிகோட் செய்ய முடியாது
} catch(err) {
document.getElementById("demo").innerHTML = err.name;
}
JavaScript Syntax Errors
குறியீடு JavaScript இன் இலக்கண விதிகளை மீறும்போது Syntax Error ஏற்படுகிறது.
| பிழை | எடுத்துக்காட்டு | பிழை |
|---|---|---|
| SyntaxError | fname = "John); | தவறான அல்லது எதிர்பாராத டோக்கன் ) |
| SyntaxError | Math.round(4.6; | வாத பட்டியலுக்குப் பிறகு ) காணவில்லை |
எடுத்துக்காட்டு
இந்த எடுத்துக்காட்டில் சரத்தை மூட மறந்துவிட்டோம்:
// இந்த வரியை JavaScript பாகுபடுத்த முடியாது
let fName = "John);
// இயக்கம் இங்கே நிற்கும்
மேலே உள்ள அறிக்கை பிழையை உருவாக்கும்: தவறான அல்லது எதிர்பாராத டோக்கன்
நிரலின் இயக்கம் நிற்கும்!
Syntax Errors கேட்ச் செய்ய முடியாது
தொடரியல் பிழைகள் try...catch மூலம் கேட்ச் செய்ய முடியாது
தொடரியல் பிழைகள் இயக்கத்திற்கு முன்னர் நடக்கின்றன
எடுத்துக்காட்டு
கீழே உள்ள குறியீடு ஒரு பிழையை உருவாக்க வேண்டும், ஆனால் அது செய்யாது:
try {
let x = Math.round(4.6;)
} catch(err) {
let text = err.name + " " + err.description;
}
தொடரியல் பிரச்சினை
Math.round(4.6;)
மேலே உள்ள வரி தொடரியல் ரீதியாக தவறான JavaScript. அடைப்புக்குறிக்குள் ஒரு கூடுதல் அரைப்புள்ளி உள்ளது. சரியான தொடரியல் இருக்க வேண்டும்:
Math.round(4.6);
ஏன்
உலாவி தொடரியல் பிழைகளை எவ்வாறு கையாளுகிறது என்பதே புள்ளி:
JavaScript இயந்திரம் ஸ்கிரிப்ட் இயக்குவதற்கு முன்பே SyntaxError ஐ வீசுகிறது.
தொடரியல் பிழைகள் try...catch தொகுதி செயல்படுத்தப்படுவதற்கு முன்பே பிடிக்கப்படுகின்றன.
இதன் பொருள் try தொகுதி ஒருபோதும் தொடங்காது. ஸ்கிரிப்ட் இயங்கத் தவறுகிறது (let text = update இல்லை).
கவனிக்க:
உலாவி கன்சோல் (F12 → Console டேப்) இதுபோன்ற ஒன்றைக் காட்டும்:
Uncaught SyntaxError: வாத பட்டியலுக்குப் பிறகு ) காணவில்லை.
JavaScript Eval Error
ஒரு EvalError eval() செயல்பாட்டில் ஒரு பிழையைக் குறிக்கிறது.
JavaScript இன் புதிய பதிப்புகள் EvalError ஐ வீசாது.
அதற்கு பதிலாக SyntaxError ஐப் பயன்படுத்தவும்.
eval() காலாவதியானது:
eval() செயல்பாட்டின் பயன்பாடு பாதுகாப்பு பிரச்சினைகள் காரணமாக தடைசெய்யப்பட்டுள்ளது மற்றும் நவீன JavaScript குறியீட்டில் தவிர்க்கப்பட வேண்டும்.
மேலும் பார்க்க:
JavaScript Silent Errors
எச்சரிக்கைகள் இல்லாமல் நடக்கும் பிழைகளைப் பற்றி அறியவும்
JavaScript Error Statements
பிழை அறிக்கைகள் மற்றும் அவற்றின் தொடரியல் பற்றி அறியவும்
JavaScript Debugging
JavaScript பிழைகளைக் கண்டறிந்து சரிசெய்வது பற்றி அறியவும்
JavaScript Errors பயிற்சி
JavaScript பிழைகள் பற்றிய உங்கள் அறிவைச் சோதிக்க இந்தப் பயிற்சியை முயற்சிக்கவும்.