⊗jsSpExcPrb 150 of 294 menu

JavaScript'te İstisnaları Fırlatma

JSON ürün görevinin catch bloğunu ele alalım:

catch (error) { if (error.name == 'SyntaxError') { alert('Geçersiz ürün JSON\'u'); } else if (error.name == 'ProductCostError') { alert('Üründe fiyat veya miktar eksik'); } }

Gördüğünüz gibi, planladığımız iki istisnayı yakalıyoruz ve buna bir şekilde tepki veriyoruz. Peki ya bizim tarafımızdan planlanmamış, başka türde bir istisna ortaya çıkarsa? Bu durumda, o da catch bloğuna düşecek, ancak başka bir türdeki istisna hiçbir if koşulumuza uymayacağı için bu duruma herhangi bir tepki gelmeyecek.

Hiçbir tepki olmayacak derken, kastettiğim gerçekten hiçbir tepki olmaması: konsola hatta bir hata bile yazılmayacak. Kodumuz sessizce çalışmayacak.

Bu nedenle şu kural vardır: kodunuz yalnızca nasıl başa çıkacağını bildiği istisnaları yakalamalıdır. Eğer istisna bilinmiyorsa, throw kullanarak onu fırlatmak gerekir. Bu durumda, onu yukarıda daha bilgili biri yakalar ya da istisna konsola hata olarak düşer.

Kodumuzu düzeltelim:

catch (error) { if (error.name == 'SyntaxError') { alert('Geçersiz ürün JSON\'u'); } else if (error.name == 'ProductCostError') { alert('Üründe fiyat veya miktar eksik'); } else { throw error; // istisnayı daha ileriye fırlat } }

Aşağıdaki kod verilmiştir:

try { let arr = JSON.parse(json); for (let i = 0; i < arr.length; i++) { localStorage.setItem(i, arr[i]); } } catch (error) { if (error.name == 'QuotaExceededError') { alert('depolama alanı doldu'); } if (error.name == 'SyntaxError') { alert('geçersiz JSON'); } }

Bu kodun nesi yanlış? Daha iyi bir versiyona düzeltin.

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