JavaScript'te İstisna Fırlatma

Önceki derslerde, JavaScript'in bir sorun olduğunda istisna fırlattığı iki yeri inceledik.

Ancak, projenizde sizin için istisnai olan, ancak JavaScript için olmayan başka durumlar da olabilir. Bu durumda kendi özel istisnalarınızı oluşturabilir ve fırlatabilirsiniz.

Bunun için gerekli sözdizimini inceleyelim. Öncelikle, istisna metnini parametre olarak ileterek new Error komutuyla bir istisna oluşturmanız gerekir:

javascriptnew Error('istisna metni');

Daha sonra bu istisna, throw komutu kullanılarak fırlatılmalıdır:

javascriptthrow new Error('istisna metni');

Bir istisna fırlatmak, JavaScript'in istisnai bir durum olduğunu düşünmesine neden olur. Bu, böyle bir istisnanın try-catch yapısı kullanılarak yakalanabileceği ve istenen şekilde işlenebileceği anlamına gelir.

Bunun nasıl kullanılacağını bir örnekle görelim. Bir sayıyı başka bir sayıya bölen bir fonksiyonumuz olsun:

javascriptfunction bol(a, b) {
  return a / b;
}

Sıfıra bölmenin yasak olduğunu ve bunun yapılmaya çalışılması durumunda bir istisnai durum oluşması gerektiğini varsayalım. Bunun için fonksiyonda, 0'a bölme girişimi olup olmadığını kontrol edeceğiz. Yoksa - böleceğiz, varsa - bir istisna fırlatacağız:

javascriptfunction bol(a, b) {
  if (b !== 0) {
    return a / b;
  } else {
    throw new Error('sıfıra bölme hatası');
  }
}

Öncelikle, istisnayı yakalamadan 0'a bölmeyi deneyelim:

javascriptalert( bol(3, 0) );

Bu durumda betik yürütmesi kesilecek ve konsolda 'sıfıra bölme hatası' metniyle bir hata görünecektir (kontrol edin). Şimdi hatamızı yakalayalım ve bir şekilde işleyelim:

javascripttry {
  alert( bol(3, 0) );
} catch (error) {
  alert('yasak olan sıfıra bölme işlemi yapmaya çalışıyorsunuz');
}
Задание 1

JavaScript'te negatif bir sayının karekökünü almaya çalışmak istisna fırlatmaz:

javascriptlet sonuc = Math.sqrt(-1);
console.log(sonuc); // NaN yazdırır

Bir sayının karekökünü alan ve aynı zamanda negatif bir sayıdan karekök alınmaya çalışılırsa istisna fırlatan kendi fonksiyonunuzu yazın.