Saya menggunakan TypeScript untuk proyek yang cukup besar, dan saya bertanya-tanya apa standar untuk penggunaan Error
s. Misalnya, saya berikan indeks pengecualian di Jawa:
throw new IndexOutOfBoundsException();
Apakah pernyataan yang setara dalam TypeScript adalah:
throw new Error("Index Out of Bounds");
Cara lain apa yang bisa saya lakukan ini? Apa standar yang diterima?
sumber
RangeError
. Haruskah Anda mendefinisikan jenis khusus atau adilthrow new Error("<message>");
?Konvensi untuk penggunaan di luar jangkauan JavaScript digunakan
RangeError
. Untuk memeriksa jenisnya gunakan if / else +instanceof
mulai dari yang paling spesifik hingga yang paling umumsumber
else { throw; }
siniSolusi sederhana untuk memancarkan dan menampilkan pesan dengan Pengecualian.
Peringatan
Di atas bukan solusi jika kita tidak tahu jenis kesalahan apa yang dapat dipancarkan dari blok. Dalam kasus semacam itu, penjaga harus digunakan dan penanganan yang tepat untuk kesalahan yang tepat harus dilakukan - lihat jawaban @Martarty.
sumber
<Error>
memberi tahu kompiler TS bahwa die
sini adalah tipe<Error>
sehingga Anda memiliki (1) intellisense dan (2) memeriksa jenis yang lebih baik. Ketahuilah bahwa gips apa pun tidak menerjemahkan ke JS sama sekali dan ini murni gula sintaksis.Jangan lupa tentang pernyataan pergantian:
default
.instanceof
bisa cocok dengan superclass.constructor
akan cocok dengan kelas yang tepat.sumber