Promise ile Hata Yönetimi: Basit ve Güçlü
```javascript
let fetchData = new Promise((resolve, reject) => {
let dataFetched = false; // Veri alımı simülasyonu
if (dataFetched) {
resolve("Veri başarıyla alındı.");
} else {
reject("Veri alınırken bir hata oluştu.");
}
});
fetchData
.then(result => console.log(result)) // Başarılı sonuç
.catch(error => console.error(error)); // Hata yakalama
```
Yukarıdaki örnekte, `fetchData` Promise’inin sonuçlarıyla ilgili başarılı bir işlem veya hata durumuna göre işlem yapılır. `catch` metoduyla, hata yönetimi oldukça basitleştirilmiş olur. Ancak, asenkron kodun daha karmaşık hale gelmesi durumunda, Promise zincirleri çok uzun ve karışık bir hal alabilir.
Async/Await: Hata Yönetiminde Yeni Bir Boyut
```javascript
async function fetchData() {
try {
let response = await fetch('https://jsonplaceholder.typicode.com/posts');
let data = await response.json();
console.log(data);
} catch (error) {
console.error("Veri çekme sırasında bir hata oluştu: ", error);
}
}
fetchData();
```
Async/Await ile yazdığınızda, asenkron işlemleriniz çok daha sade ve okunabilir hale gelir. Kodunuzu senkron hale getirerek, hata yönetimi çok daha rahat bir hale gelir. Burada dikkat etmeniz gereken nokta, `try` ve `catch` blokları ile hata yakalamanın çok etkili bir yöntem olduğudur. Hatalar, `catch` bloğunda ele alınarak, geliştiriciye net bir hata mesajı sunulur.
Error Boundaries: React’te Hata Yönetimi
```javascript
class ErrorBoundary extends React.Component {
constructor(props) {
super(props);
this.state = { hasError: false };
}
static getDerivedStateFromError(error) {
return { hasError: true };
}
componentDidCatch(error, info) {
console.log("Hata:", error);
console.log("Hata bilgisi:", info);
}
render() {
if (this.state.hasError) {
return
Bir şeyler yanlış gitti.
;}
return this.props.children;
}
}
// Kullanımı
```
React'teki bu yapı, hata oluştuğunda kullanıcıyı bilgilendirir ve uygulamanın geri kalanını etkilemeden çalışmasını sağlar. Error Boundaries, büyük uygulamalarda hata yönetimini daha sürdürülebilir hale getirir.
Hata Yönetiminde En İyi Uygulamalar
- Hataları loglayın: Asenkron işlemlerdeki hataları sadece ekrana yazdırmak yerine, bir log sistemi kullanarak bu hataları kaydedin. Bu, hata analizi için çok daha faydalı olacaktır.
- Error Boundaries kullanın: Özellikle React gibi framework’lerde, hata sınırlarını kullanarak uygulamanızın kesintiye uğramadan çalışmasını sağlayın.
- Gelişmiş hata mesajları: Hataları anlamak için yeterince bilgi sağlayacak şekilde hata mesajları yazın. Böylece hataların nerede ve neden oluştuğunu hızlıca bulabilirsiniz.