মূল কন্টেন্টে যান
মডিউল 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 { ঠিক আছে: সত্য, মান: <object> }, অন্যথায় { ঠিক আছে: মিথ্যা } দিন। JSON.parse এ ট্রাই/ক্যাচ ব্যবহার করুন।

সম্পাদক লোড হচ্ছে...
ইঙ্গিত দেখান

চেষ্টা করে JSON.parse মোড়ানো; ক্যাচ রিটার্নে { ঠিক আছে: মিথ্যা }।

সমাধান 3 প্রচেষ্টার পরে উপলব্ধ