Gösterdiğiniz gibi çıplak bir yakalayıp fırlatmanın bir anlamı yok. Kod ekleme ve yavaş yürütme dışında yararlı bir şey yapmaz. Öyleyse, .catch()
atacak ve yeniden atacaksan, içinde yapmak istediğin bir şey olmalı .catch()
, yoksa sadece .catch()
tamamen kaldırmalısın .
Bu genel yapı için olağan nokta .catch()
, hatayı günlüğe kaydetme veya bazı durumu temizleme (dosyaları kapatma gibi) gibi bir şeyi yürütmek , ancak söz zincirinin reddedilmiş olarak devam etmesini istemenizdir.
promise.then(function(result){
}).catch(function(error) {
console.log(error);
throw error;
});
Bir öğreticide, insanlara hataları nerede yakalayabileceklerini göstermek veya hatayı ele alıp sonra yeniden atma kavramını öğretmek için orada olabilir.
Yakalama ve yeniden fırlatma için faydalı nedenlerden bazıları şunlardır:
- Hatayı günlüğe kaydetmek , ancak söz zincirini reddedilmiş olarak tutmak istiyorsunuz .
- Hatayı başka bir hataya dönüştürmek istiyorsunuz (genellikle zincirin sonunda daha kolay hata işleme için). Bu durumda, farklı bir hatayı yeniden atarsınız.
- Söz zinciri devam etmeden önce bir dizi işlem yapmak istersiniz (kapat / ücretsiz kaynaklar gibi), ancak söz zincirinin reddedilmiş kalmasını istersiniz.
- Bir başarısızlık varsa söz zincirinin bu noktasında hata ayıklayıcı için bir kesme noktası yerleştirmek için bir nokta istiyorsunuz .
Ancak, catch işleyicisinde başka kod olmadan aynı hatanın düz bir şekilde yakalanması ve yeniden atılması, kodun normal çalışması için yararlı hiçbir şey yapmaz.