Bu eğiticide, örnekler yardımıyla JavaScript'teki istisnaları ele almak için try… catch… nihayet ifadelerini öğreneceksiniz.
try
, catch
Ve finally
bloklar durumları (bir hatanın tipi) işlemek için kullanılır. Bunları öğrenmeden önce, programlamadaki hata türlerini bilmeniz gerekir.
Hata Türleri
Programlamada, kodda iki tür hata olabilir:
Sözdizimi Hatası : Söz diziminde hata. Örneğin, yazarsanız consol.log('your result');
, yukarıdaki program bir sözdizimi hatası verir. Yazımı console
yukarıdaki kodda bir hatadır.
Çalışma Zamanı Hatası : Bu tür bir hata, programın yürütülmesi sırasında ortaya çıkar. Örneğin,
geçersiz bir işlevi veya bir değişkeni çağırmak.
Çalışma sırasında ortaya çıkan bu hatalara istisnalar denir . Şimdi bu istisnaları nasıl ele alabileceğinizi görelim.
JavaScript deneyin… catch İfadesi
try… catch
İfadesi istisnalar işlemek için kullanılır. Sözdizimi şöyledir:
try ( // body of try ) catch(error) ( // body of catch )
Ana kod try
bloğun içindedir . try
Blok yürütülürken herhangi bir hata oluşursa catch
bloğa gider . catch
Blok yakalamak tablolara göre hataları ele alır.
Hata oluşmazsa, try
bloğun içindeki kod yürütülür ve catch
blok atlanır.
Örnek 1: Belirtilmemiş Değişkeni Görüntüle
// program to show try… catch in a program const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); // forgot to define variable a console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); )
Çıktı
NaN Bir hata yakalandı Hata mesajı: ReferenceError: a tanımlı değil
Yukarıdaki programda bir değişken tanımlanmamıştır. Bir değişkeni yazdırmaya çalıştığınızda, program bir hata verir. Bu hata catch
blokta yakalandı .
JavaScript deneyin… yakalamak… nihayet İfade
try… catch… finally
İfadeyi istisnaları işlemek için de kullanabilirsiniz . finally
Kod başarıyla ya da bir hata meydana gelmesi durumunda çalıştırdığında blok hem de yürütür.
try… catch… finally
Bloğun sözdizimi şöyledir:
try ( // try_statements ) catch(error) ( // catch_statements ) finally() ( // codes that gets executed anyway )
Örnek 2: deneyin… yakala… sonunda Örnek
const numerator= 100, denominator = 'a'; try ( console.log(numerator/denominator); console.log(a); ) catch(error) ( console.log('An error caught'); console.log('Error message: ' + error); ) finally ( console.log('Finally will execute every time'); )
Çıktı
NaN Bir hata yakalandı Hata mesajı: ReferenceError: a tanımlı değil Son olarak her seferinde çalıştırılacak
Yukarıdaki programda bir hata oluşur ve bu hata catch
blok tarafından yakalanır . finally
(Programı başarıyla veya bir hata oluşursa çalışıyorsa) blok herhangi bir durumda çalıştırır.
Not : İfadeden sonra catch
veya finally
ifade kullanmanız gerekir try
. Aksi takdirde, program Yakalanmamış SyntaxError: Eksik yakalama hatası veya denemeden sonra son olarak atar.
JavaScript deneyin… setTimeout'ta yakala
try… catch
O "içinde olduysa istisna yakalamak olmaz zamanlanmış setTimeout olduğu gibi kod" (). Örneğin,
try ( setTimeout(function() ( // error in the code ), 3000); ) catch (e) ( console.log( "won't work" ); )
Yukarıdakiler try… catch
çalışmayacaktır çünkü motor try… catch
yapıdan zaten ayrılmıştır ve fonksiyon daha sonra çalıştırılır.
try… catch
Blok zamanlanmış işlevi içinde bir istisna yakalamak için bu işlevin içinde olmalıdır. Örneğin,
setTimeout(function() ( try ( // error in the code ) catch ( console.log( "error is caught" ); ) ), 3000);
Ayrıca, kullanıcı tanımlı istisnaları kullanmak için throw
ifadeyle birlikte de kullanabilirsiniz try… catch
. Örneğin, belirli bir sayı 0'a bölünür . Infinity
Programda bir hata olarak düşünmek istiyorsanız, throw
bu koşulu işlemek için ifadeyi kullanarak kullanıcı tanımlı bir istisna atabilirsiniz .
Bir sonraki eğitimde JavaScript fırlatma İfadesi hakkında bilgi edineceksiniz.