JavaScript Errors

JavaScript பிழைகளைக் கையாள கற்றுக்கொள்ளுங்கள்

பிழைகள் நடக்கும்!

JavaScript குறியீட்டை இயக்கும்போது, பல்வேறு பிழைகள் ஏற்படலாம்.

பிழைகள் புரோகிராமர் செய்த குறியீட்டு பிழைகள், தவறான உள்ளீடு காரணமான பிழைகள் மற்றும் பிற கணிக்க முடியாத விஷயங்கள்:

Reference Errors - குறிப்பு பிழைகள்
Type Errors - வகை பிழைகள்
Range Errors - வரம்பு பிழைகள்
URI Errors - URI பிழைகள்
Syntax Errors - தொடரியல் பிழைகள்
Eval Error - Eval பிழை (காலாவதியானது)
Silent Errors - அமைதியான பிழைகள் (அடுத்த அத்தியாயம்)

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 பிழைகள் பற்றிய உங்கள் அறிவைச் சோதிக்க இந்தப் பயிற்சியை முயற்சிக்கவும்.

பின்வரும் வார்த்தைகளில் ஒன்று மட்டுமே சட்டப்பூர்வ JavaScript அறிக்கையாகும், எது?

find
✗ தவறு! "find" என்பது JavaScript இல் ஒரு கீ வேர்ட் அல்ல, இது ஒரு வரிசை முறை மட்டுமே
check
✗ தவறு! "check" என்பது JavaScript இல் ஒரு கீ வேர்ட் அல்ல
try
✓ சரி! "try" என்பது JavaScript இல் ஒரு கீ வேர்ட் ஆகும், இது பிழை கையாளுதலுக்கு பயன்படுத்தப்படுகிறது. இது try...catch அறிக்கையின் ஒரு பகுதியாகும்
execute
✗ தவறு! "execute" என்பது JavaScript இல் ஒரு கீ வேர்ட் அல்ல