Tidak ada gunanya menangkap dan melempar telanjang saat Anda tunjukkan. Itu tidak melakukan sesuatu yang berguna kecuali menambahkan kode dan eksekusi lambat. Jadi, jika Anda akan .catch()dan melempar ulang, seharusnya ada sesuatu yang ingin Anda lakukan di .catch(), jika tidak, Anda harus menghapus .catch()seluruhnya.
Poin yang biasa untuk struktur umum tersebut adalah ketika Anda ingin mengeksekusi sesuatu .catch()seperti mencatat kesalahan atau membersihkan beberapa status (seperti file tutup), tetapi Anda ingin rantai janji terus berlanjut saat ditolak.
promise.then(function(result){
}).catch(function(error) {
console.log(error);
throw error;
});
Dalam tutorial, mungkin ada di sana hanya untuk menunjukkan kepada orang-orang di mana mereka dapat menemukan kesalahan atau untuk mengajarkan konsep penanganan kesalahan, lalu melemparkannya kembali.
Beberapa alasan berguna untuk menangkap dan melempar kembali adalah sebagai berikut:
- Anda ingin mencatat error , tetapi tetap mempertahankan rantai janji sebagai ditolak.
- Anda ingin mengubah kesalahan menjadi beberapa kesalahan lain (seringkali untuk memudahkan pemrosesan kesalahan di akhir rangkaian). Dalam kasus ini, Anda akan memunculkan kembali kesalahan yang berbeda.
- Yang kamu ingin melakukan banyak pemrosesan sebelum rantai janji berlanjut (seperti sumber daya dekat / gratis), tetapi Anda ingin rantai janji tetap ditolak.
- Anda ingin tempat untuk menempatkan breakpoint untuk debugger pada titik ini di rantai perjanjian jika terjadi kegagalan.
Namun, tangkapan sederhana dan penelusuran ulang dari kesalahan yang sama tanpa kode lain di penangan tangkapan tidak melakukan apa pun yang berguna untuk menjalankan kode secara normal.