TypeScript'te Hata Yönetimi

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.

  1. 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çin super() metodunu çağırmanız gerekir. Bu, message ve stack özelliklerinin doğru bir şekilde başlatılmasını sağlar.

  2. Özellik Ekleme Hata nesnesine ek bilgi eklemek isterseniz, sınıf içinde yeni özellikler tanımlayın. Örneğin, yukarıdaki CustomError'da bir errorCode ö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.

YouTube Video