Selamlar,
aklımdaki soruyu js üzerinden soracağım. Şöyle bir fonksiyonumuz olsun:
helpers.defaultHandler = async (handle, customCatch = () => {}) => {
try {
await handle();
} catch (err) {
if (await customCatch(err)) return;
await notify.error('Bir hata oluştu.');
}
};
Bu fonksiyonu da şu şekilde kullanabilelim:
login() {
this.$helpers.defaultHandler(async () => {
this.isLoadingLogin = true;
await this.postLogin(this.user);
}, (err) => {
if (err.response.status === 400) {
this.isWrongEmailOrPassword = true;
return true;
}
})
.finally(() => {
this.isLoadingLogin = false;
this.$router.push({ name: 'TeamDashboardHome' });
});
}
Veya başka bir kullanım:
register() {
this.$helpers.defaultHandler(async () => {
await this.postRegister(this.user);
})
}
Böyle bir kullanım yaptığımızda defaultHandler fonksiyon içinde handle parametresi ile gelen fonksiyonu try-catch içine alıyorum. Eğer bir hata oluşursa notify.error('Bir hata oluştu.'); ile kullanıcıyı bilgilendiriyorum. Eğer ki catch içinde özel bir hatayı yakalamak istiyorsam (şifre veya email yanlış gibi), onu da customCatch parametresi ile yaptırabiliyorum. Böyle olduğu zaman tek tek try-catch içine alıp, hata varsa kullanıcıyı bilgilendir diye uğraşmıyorum. Beklenmedik bir hata olduğunda direkt hata var diye kullanıcıyı bilgilendiriyorum. Böyle bir yaklaşım doğru mudur? Bunu js olarak değil de php olarakta düşünebiliriz. Teşekkürler