TypeScript'te Hata Yönetimi
Bu makale, TypeScript'teki hata yönetimini açıklar.
YouTube Video
TypeScript'te Hata Yönetimi
TypeScript'te hata yönetimi temelde, tıpkı JavaScript'te olduğu gibi try...catch
yapısı kullanılarak gerçekleştirilir. TypeScript'te, tür çıkarımı sayesinde hata içeriğini daha net bir şekilde yönetmek mümkündür. Bu, daha hassas ve okunabilir hata yönetimine olanak tanır.
try...catch
Sözdizimi
Hata yönetimi için temel sözdizimi şu şekildedir:.
1try {
2 // Code that may throw an error
3 throw new Error("Something went wrong!");
4} catch (error) {
5 // Catch and handle the error
6 console.error("Error:", error);
7} finally {
8 // Code that runs regardless of whether an error occurred
9 console.log("Finally block executed.");
10}
Tür Güvenli Hata Yönetimi
TypeScript'te, catch
bloğunda yakalanan hatalar any
türü olarak değerlendirilir, ancak daha güvenli bir hata yönetimi için uygun türün belirtilmesi önerilir. Örneğin, aşağıdaki gibi özel bir hata türü tanımlayıp kullanabilirsiniz:.
1class CustomError extends Error {
2 constructor(message: string, public errorCode: number) {
3 super(message);
4 this.name = "CustomError";
5 }
6}
7
8try {
9 throw new CustomError("Invalid operation", 400);
10} catch (error) {
11 if (error instanceof CustomError) {
12 console.error(`Error: ${error.message}, Code: ${error.errorCode}`);
13 } else {
14 console.error("Unknown error occurred");
15 }
16}
CustomError
adlı bir sınıfın oluşturulduğu ve errorCode
gibi özel özelliklerle bir hatanın fırlatıldığı bu örnekte. catch
bloğunda, instanceof
kullanarak hatanın türünü belirleyip uygun işlemleri gerçekleştirin.
Asenkron Hata Yönetimi
TypeScript'te, asenkron fonksiyonlar kullanılırken hataları yakalamak için try...catch
de kullanılır.
1async function fetchData() {
2 try {
3 const response = await fetch("https://api.example.com/data");
4 if (!response.ok) {
5 throw new Error(`HTTP error! status: ${response.status}`);
6 }
7 const data = await response.json();
8 console.log(data);
9 } catch (error) {
10 console.error("Failed to fetch data:", error);
11 }
12}
13
14fetchData();
Bu örnekte, fetch
kullanılarak veri alınır ve durum kodu OK değilse hata fırlatmak için response.ok
kontrol edilir. Hata catch
bloğunda yakalanır ve uygun bir günlük çıktısı sağlanır.
Özet
TypeScript'te, hata içeriğini netleştirmek için türlerin kullanılması hata yönetimini daha güvenli ve okunabilir hale getirir. Hataları yönetirken, hangi tür hataların oluşabileceğini netleştirmek ve buna göre müdahalede bulunmak önemlidir.
Hata
TypeScript'teki Error
sınıfı, JavaScript'teki Error
sınıfını genişletir ve hataları temsil etmek için temel bir nesnedir. Error
sınıfını kullanarak bir hata mesajı içeren bir nesne oluşturabilir ve hata yönetimi yapabilirsiniz.
Error
Sınıfının Temelleri
Error
sınıfı şu şekilde kullanılır.
1const error = new Error("Something went wrong!");
2console.log(error.message); // "Something went wrong!"
3console.log(error.name); // "Error"
Özellikler
Error
sınıfı aşağıdaki özelliklere sahiptir:.
- mesaj Hata mesajını temsil eden bir metin.
- isim
Hatanın adı. Varsayılan olarak
"Error"
'dır, ancak özel bir hata sınıfı oluşturarak değiştirilebilir. - yığın Hata ayıklama için kullanılan yığın izleme bilgisi. Hatanın oluştuğu anda hangi kodun hataya neden olduğunu belirten bir dize.
Özel Hata Sınıfı
Error
sınıfını genişletmek ve kendi hata sınıflarınızı oluşturmak da mümkündür. Bu, belirli hata yönetiminin gerekli olduğu durumlarda faydalıdır. Örneğin, HTTP istek hataları veya veritabanı hataları gibi farklı türdeki hataları ele almak istediğinizde etkilidir.
Özel Hata Oluşturma Örneği
1class CustomError extends Error {
2 constructor(message: string, public errorCode: number) {
3 super(message); // Call the constructor of the parent class 'Error'
4 this.name = "CustomError"; // Set the name of the error
5 }
6}
7
8const customError = new CustomError("Invalid operation", 400);
9console.log(customError.message); // "Invalid operation"
10console.log(customError.name); // "CustomError"
11console.log(customError.errorCode); // 400
CustomError
sınıfı oluşturarak ve hata kodları gibi bilgiler ekleyerek hatalar hakkında daha kapsamlı bilgiler yönetebilirsiniz.
Error
Sınıfının Miras Alınması
TypeScript'te Error
sınıfını genişleterek özel bir hata sınıfı oluştururken dikkat edilmesi gereken birkaç nokta vardır.
-
super()
çağrısı yapmak Özel bir hata sınıfının yapıcısında,Error
sınıfının yapıcısını çağırmak içinsuper()
metodunu çağırmanız gerekir. Bu,message
vestack
özelliklerinin doğru bir şekilde başlatılmasını sağlar. -
Özellik Ekleme Hata nesnesine ek bilgi eklemek isterseniz, sınıf içinde yeni özellikler tanımlayın. Örneğin, yukarıdaki
CustomError
'da birerrorCode
özelliği eklenmiştir.
Hataları Fırlatma ve Yakalama
Hataları Error
sınıfını veya özel bir hata sınıfını kullanarak fırlatıp yakalayarak işleyebilirsiniz.
1function riskyOperation() {
2 throw new Error("Something went wrong during the operation");
3}
4
5try {
6 riskyOperation();
7} catch (error) {
8 if (error instanceof Error) {
9 console.error(error.message); // "Something went wrong during the operation"
10 console.error(error.name); // "Error"
11 }
12}
Özel hatalar durumunda da belirli hataları belirlemek ve bunları uygun şekilde ele almak için instanceof
kullanın.
1class CustomError extends Error {
2 constructor(message: string, public errorCode: number) {
3 super(message);
4 this.name = "CustomError";
5 }
6}
7
8try {
9 throw new CustomError("Database connection failed", 500);
10} catch (error) {
11 if (error instanceof CustomError) {
12 console.error(`Error: ${error.message}, Code: ${error.errorCode}`);
13 }
14}
Özet
TypeScript'teki Error
sınıfı, standart hata yönetimi yapmak için temel bir sınıftır. Ayrıca, Error
sınıfını genişleterek özel hatalar oluşturmak, hata türlerine ve ek bilgilere dayalı esnek hata yönetimini mümkün kılar.
Yukarıdaki makaleyi, YouTube kanalımızda Visual Studio Code'u kullanarak takip edebilirsiniz. Lütfen YouTube kanalını da kontrol edin.