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
CustomErrorsı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,Errorsınıfının yapıcısını çağırmak içinsuper()metodunu çağırmanız gerekir. Bu,messagevestackö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.