முக்கிய உள்ளடக்கத்திற்குச் செல்லவும்
தொகுதி 5 · பாடம் 4 இன் 4பாடத்திட்டத்தில் 20/32~12 min
தொகுதி பாடங்கள் (4/4)

முயற்சி / பிடிக்க / எறி

ஜாவாஸ்கிரிப்டில் பிழை என்பது இயல்பான ஓட்டத்தை குறுக்கிடும் ஒரு மதிப்பு (பொதுவாக Error பொருள்) யாரோ ஒருவர் பிடிக்கும் வரை அழைப்பு அடுக்கை குமிழ்கள். இந்த வழக்கை கையாளுவதற்கான கட்டமைப்பு try / catch.

பிழையை எறிதல்: throw

JS
function dividi(a, b) {
  if (b === 0) {
    throw new Error('Divisione per zero');
  }
  return a / b;
}

throw தற்போதைய செயல்பாட்டை உடனடியாக குறுக்கிடுகிறது.

பிடிக்கிறது: try / catch

JS
try {
  const r = dividi(10, 0);
  console.log('ok', r);
} catch (err) {
  console.log('errore:', err.message); // 'errore: Divisione per zero'
}

// Il programma continua qui, anche se c'è stato un errore.

try உள்ளே உள்ள அனைத்தும் செயல்படுத்தப்பட்டது; பிழை ஏற்பட்டால் (throw வழியாக அல்லது ஏதேனும் செயல்பாட்டின் மூலம் தோல்வி), கட்டுப்பாடு catch தொகுதிக்கு தாவுகிறது. catch (...)க்குப் பிறகு மாறி பிழையைப் பெறுகிறது.

finally (விரும்பினால்)

எப்போதும் இயங்கும் குறியீடு, பிழை அல்லது இல்லை. ஆதாரங்களை மூடுவதற்கு பயனுள்ளது:

JS
try {
  // ... operazione rischiosa
} catch (err) {
  // ... log
} finally {
  // ... pulizia (sempre eseguita)
}

எப்போது பயன்படுத்த வேண்டும் (மற்றும் போது இல்லை)

  • ஆம்: I/O செயல்பாடுகள் (JSON.parse நம்பத்தகாத உள்ளீட்டில், fetch, வட்டு அணுகல்), மாற்றங்கள் தோல்வி அடையலாம்.
  • ஒருவேளை இல்லை: சாதாரண ஓட்டத்திற்கு. உள்ளீடு தவறானது என்று உங்களுக்குத் தெரிந்தால், அதைச் சரிபார்ப்பது நல்லது எறிந்து பிடிப்பதை விட if உடன்.
JS
// Tipico: parsing JSON difensivo
function parseJsonSafe(text) {
  try {
    return { ok: true, value: JSON.parse(text) };
  } catch (err) {
    return { ok: false, error: err.message };
  }
}

parseJsonSafe('{"a":1}'); // { ok: true, value: {a:1} }
parseJsonSafe('non json'); // { ok: false, error: '...' }

முயற்சி செய்து பாருங்கள்

உடற்பயிற்சி#js.m5.l4.e1
முயற்சிகள்: 0ஏற்றுகிறது…

`safeDivide(a, b)` என்பதை வரையறுக்கவும்: b என்பது 0 ஆக இருந்தால், 'Divisione per zero' என்ற செய்தியுடன் பிழையை எறியுங்கள், இல்லையெனில் a/b ஐத் திருப்பி அனுப்பவும்.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

என்றால் (b === 0) புதிய பிழை ('...'); பின்னர் a / b திரும்பவும்.

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்

மதிப்பாய்வு பயிற்சி

உடற்பயிற்சி#js.m5.l4.e2
முயற்சிகள்: 0ஏற்றுகிறது…

`parseJsonSafe(text)` என்பதை வரையறுக்கவும்: உரை சரியானதாக இருந்தால் JSON {சரி: true, மதிப்பு: <object> }, இல்லையெனில் { சரி: தவறு } என்பதைத் திருப்பி அனுப்பவும். JSON.parse இல் try/catch ஐப் பயன்படுத்தவும்.

எடிட்டரை ஏற்றுகிறது…
குறிப்பைக் காட்டு

முயற்சியில் JSON.parseஐ மடக்கு; கேட்ச் ரிட்டர்னில் { சரி: பொய் }.

3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்