Süper Üye
JavaScript'in Try-Catch ifadesi, bir kod bloğunda oluşabilecek hataları ele almak için kullanılır.
Try bloğu, istisna fırlatabilecek kodu içerir. Eğer bir istisna fırlatılırsa, kod yürütmesi hemen Catch bloğuna atlar.
Catch bloğu, fırlatılan hatanın türüne göre çalıştırılır ve hatayı ele almak için gerekli kodu içerir. Bu sayede, hata oluştuğunda programın çökmesi engellenir ve hatayla nasıl başa çıkılacağı belirlenir.
Ayrıca, Try-Catch blokları iç içe kullanılabilir ve birden fazla hatanın ele alınması sağlanabilir. Bunun için, her hatanın fırlatılması durumunda ayrı bir Catch bloğu kullanılır.
JavaScript Try-Catch bloklarının nasıl kullanılabileceğine dair birkaç örnek verebilirim,
Örnek 1: Sıfıra bölme hatası
Aşağıdaki örnekte, bir sayıyı 0'a bölmeye çalışırken oluşabilecek hataların nasıl ele alınacağı gösterilmiştir:
Bu kod bloğu, sıfıra bölme hatası nedeniyle bir hata fırlatır ve hatanın türüne göre çalışan Catch bloğu, hatayı ele alarak konsola "Hata yakalandı: Infinity" çıktısını verir.
Örnek 2: Geçersiz JSON formatı hatası
Aşağıdaki örnekte, geçersiz JSON formatı nedeniyle oluşabilecek hataların nasıl ele alınacağı gösterilmiştir:
Bu kod bloğu, geçersiz JSON formatı nedeniyle bir hata fırlatır ve hatanın türüne göre çalışan Catch bloğu, hatayı ele alarak konsola "Hata yakalandı: SyntaxError: Unexpected token } in JSON at position 23" çıktısını verir.
Örnek 3: İzin reddi hatası
Aşağıdaki örnekte, bir kullanıcının kameraya erişim iznini reddetmesi nedeniyle oluşabilecek hataların nasıl ele alınacağı gösterilmiştir:
Bu kod bloğu, kullanıcının kamera erişimine izin vermemesi nedeniyle bir hata fırlatır ve hatanın türüne göre çalışan Catch bloğu, hatayı ele alarak konsola "Hata yakalandı: Error: Kamera erişimine izin reddedildi" çıktısını verir.
Try bloğu, istisna fırlatabilecek kodu içerir. Eğer bir istisna fırlatılırsa, kod yürütmesi hemen Catch bloğuna atlar.
Catch bloğu, fırlatılan hatanın türüne göre çalıştırılır ve hatayı ele almak için gerekli kodu içerir. Bu sayede, hata oluştuğunda programın çökmesi engellenir ve hatayla nasıl başa çıkılacağı belirlenir.
Ayrıca, Try-Catch blokları iç içe kullanılabilir ve birden fazla hatanın ele alınması sağlanabilir. Bunun için, her hatanın fırlatılması durumunda ayrı bir Catch bloğu kullanılır.
JavaScript Try-Catch bloklarının nasıl kullanılabileceğine dair birkaç örnek verebilirim,
Örnek 1: Sıfıra bölme hatası
Aşağıdaki örnekte, bir sayıyı 0'a bölmeye çalışırken oluşabilecek hataların nasıl ele alınacağı gösterilmiştir:
JavaScript:
try {
var num1 = 10;
var num2 = 0;
var result = num1 / num2;
console.log(result);
} catch (e) {
console.log("Hata yakalandı: " + e);
}
Bu kod bloğu, sıfıra bölme hatası nedeniyle bir hata fırlatır ve hatanın türüne göre çalışan Catch bloğu, hatayı ele alarak konsola "Hata yakalandı: Infinity" çıktısını verir.
Örnek 2: Geçersiz JSON formatı hatası
Aşağıdaki örnekte, geçersiz JSON formatı nedeniyle oluşabilecek hataların nasıl ele alınacağı gösterilmiştir:
JavaScript:
try {
var invalidJson = '{"name": "John", "age": }';
var obj = JSON.parse(invalidJson);
console.log(obj);
} catch (e) {
console.log("Hata yakalandı: " + e);
}
Bu kod bloğu, geçersiz JSON formatı nedeniyle bir hata fırlatır ve hatanın türüne göre çalışan Catch bloğu, hatayı ele alarak konsola "Hata yakalandı: SyntaxError: Unexpected token } in JSON at position 23" çıktısını verir.
Örnek 3: İzin reddi hatası
Aşağıdaki örnekte, bir kullanıcının kameraya erişim iznini reddetmesi nedeniyle oluşabilecek hataların nasıl ele alınacağı gösterilmiştir:
JavaScript:
try {
navigator.mediaDevices.getUserMedia({video: true})
.then(function(stream) {
console.log("Kamera erişimine izin verildi");
})
.catch(function(err) {
throw new Error("Kamera erişimine izin reddedildi");
});
} catch (e) {
console.log("Hata yakalandı: " + e);
}
Bu kod bloğu, kullanıcının kamera erişimine izin vermemesi nedeniyle bir hata fırlatır ve hatanın türüne göre çalışan Catch bloğu, hatayı ele alarak konsola "Hata yakalandı: Error: Kamera erişimine izin reddedildi" çıktısını verir.
Umarım bir nebzede olsa anlamanıza yardımcı olabilmişimdir.
İyi Forumlar.
İyi Forumlar.