Menangkap beberapa jenis kesalahan dalam javascript [duplikat]
Aug 16 2020
Jika saya mendefinisikan kelas kesalahan khusus seperti ini:
class MyCustom Error extends Error{ }
Bagaimana saya bisa menangkap banyak kesalahan seperti ini:
try{
if(something)
throw MyCustomError();
if(something_else)
throw Error('lalala');
}catch(MyCustomError err){
}catch(err){
}
?
Kode di atas tidak berfungsi dan memberikan beberapa kesalahan sintaks
Jawaban
1 TheOtterlord Aug 16 2020 at 15:37
Dokumen MDN merekomendasikan penggunaan if/else
blok di dalam catch
pernyataan. Ini karena tidak mungkin untuk memiliki banyak catch
pernyataan dan Anda tidak dapat menangkap kesalahan tertentu dengan cara itu.
try {
myroutine(); // may throw three types of exceptions
} catch (e) {
if (e instanceof TypeError) {
// statements to handle TypeError exceptions
} else if (e instanceof RangeError) {
// statements to handle RangeError exceptions
} else if (e instanceof EvalError) {
// statements to handle EvalError exceptions
} else {
// statements to handle any unspecified exceptions
logMyErrors(e); // pass exception object to error handler
}
}
1 Hi-IloveSO Aug 16 2020 at 15:38
JavaScript diketik dengan lemah. Gunakan if (err instanceof MyCustomError)
di dalam klausa tangkapan.
Selalu Menjadi Ancaman: Mengapa Orang Berkulit Coklat dan Hitam Tidak Bisa Nyaman di Amerika Serikat
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'