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:
new Error('istisna metni');
Daha sonra bu istisna, throw komutu
kullanılarak fırlatılmalıdır:
throw 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:
function 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:
function 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:
alert( 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:
try {
alert( bol(3, 0) );
} catch (error) {
alert('yasak olan sıfıra bölme işlemi yapmaya çalışıyorsunuz');
}
JavaScript'te negatif bir sayının karekökünü almaya çalışmak istisna fırlatmaz:
let 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.