⊗jsSpExcThr 145 of 294 menu

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.

Türkçe
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenЎзбекOʻzbekTiếng Việt
Web sitesinin çalışması, analiz ve kişiselleştirme için çerezleri kullanıyoruz. Veri işleme, Gizlilik Politikası'na uygun olarak gerçekleşir.
tümünü kabul et özelleştir reddet