JavaScript try/catch/finally ifadeleri

Tanım ve Kullanım

try/catch/finally ifadeleri, kod bloğunda meydana gelebilecek kısmi veya tam hataları işlemek için kullanılırken aynı zamanda kodun çalışmaya devam etmesini sağlar.

Hatalar, programcının kodlama hatası, yanlış girdi nedeniyle hatalar ve beklenmedik durumlar olabilir.

try ifadesi, hata kontrolü yapılacak kod bloklarını tanımlamanıza olanak tanır.

Try bloğunda hata meydana gelirse, catch ifadesi size hata işleme kod bloğu tanımlama imkanı verir.

finally ifadesi, try ve catch'in ardından ne olursa olsun kod çalıştırmak için izin verir.

Yorum:catch ve finally ifadeleri opsiyoneldir, ancak try ifadesi kullanıldığında bir tanesinin kullanılması gerekir (hem kullanılmazsa).

İpucu:Hata meydana geldiğinde, JavaScript genellikle durur ve hata mesajı oluşturur. Kendi özelleştirilmiş hatalarınızı oluşturmak için throw ifadesi kullanın (hata fırlatın). Try ve catch ile birlikte kullanılırsa, program akışını kontrol edebilir ve özelleştirilmiş hata mesajları oluşturabilirsiniz.

JavaScript hataları hakkında daha fazla bilgi için JavaScript hata dersini öğrenin.

Örnek

Bu örnekte, kodumuzda (try bloğunda) yazım hatası yaptık.

Bu örnek, "Welcome guest!" mesajını göstermeli, ancak alert yazımı yanlış.

catch bloğu, hataları yakalar ve onları işlemek için kod çalıştırır:

<!DOCTYPE html>
<html>
<body>
<p id="demo"></p>
<script>
try {
  adddlert("Welcome guest!");
}
catch(err) {
  document.getElementById("demo").innerHTML = err.message;
}
</script>
</body>
</html>

kendiniz deneyin

Sayfa altında daha fazla TIY örneği bulunmaktadır.

Sözdizimi

try {
  tryCode - Denenecek kod bloğu
}
catch(err) {
  catchCode - Hataları ele almak için kullanılacak kod bloğu
} 
finally {
  finallyCode - Try / catch sonucuna bağlı olmaksızın çalıştırılacak kod bloğu
}

Parametre değeri

Parametre Açıklama
tryCode Gerekli. Hata çalıştırılırken test edilecek kod bloğu.
err Gerekli, catch ile birlikte kullanılırsa. Hatanın referans ettiği yerel değişkeni belirtir. Bu değişken, hata bilgilerini içeren Error nesnesine (örneğin, "'addlert' is not defined" mesajı) referans verebilir. Hata throw ifadesi ile oluşturulmuşsa, bu değişken throw ifadesinde belirtilen nesneye işaret eder (daha fazla örnek için bkz.).
catchCode Opsiyonel. Try bloğunda hata meydana gelirse çalıştırılacak kod bloğu. Hata meydana gelmezse, bu kod bloğu asla çalıştırılmaz.
finallyCode Opsiyonel. Try / catch sonucu ne olursa olsun çalıştırılacak kod bloğu.

Teknik ayrıntılar

JavaScript sürümü: ECMAScript 3

Daha fazla örnek

Örnek

Bu örnek, girişi kontrol eder. Eğer değer yanlışsa, istisna (err) atar.

catch ifadesi, (err) istisnayı yakalar ve özelleştirilmiş hata mesajı gösterir:

<!DOCTYPE html>
<html>
<body>
<p>5 ile 10 arasında bir sayı girdiğinizden emin olun:</p>
<input id="demo" type="text">
<button type="button" onclick="myFunction()">Girdi Test Et</button>
<p id="message"></p>
<script>
function myFunction() {
  var message, x;
  message = document.getElementById("message");
  message.innerHTML = "";
  x = document.getElementById("demo").value;
  try { 
    if(x == "") throw "Boş";
    if(isNaN(x)) throw "Sayı değil";
    if(x > 10) throw "Çok yüksek";
    if(x < 5) throw "Çok düşük";
  }
  catch(err) {
    message.innerHTML = "Girdi: " + err;
  }
}
</script>
</body>
</html>

kendiniz deneyin

Örnek

finally ifadesi, try ve catch ifadelerinin ardından herhangi bir sonuç ne olursa olsun kodu çalıştırır:

function myFunction()
  var message, x;
  message = document.getElementById("message");
  message.innerHTML = "";
  x = document.getElementById("demo").value;
  try { 
    if(x == "") throw "Boş";
    if(isNaN(x)) throw "Sayı değil";
    if(x > 10) throw "Çok yüksek";
    if(x < 5) throw "Çok düşük";
  }
  catch(err) {
    message.innerHTML = "Hata: " + err + ".";
  }
  finally {
    document.getElementById("demo").value = "";
  }
}

kendiniz deneyin

tarayıcı destekli

cümle Chrome IE Firefox Safari Opera
try/catch/finally Destek Destek Destek Destek Destek

İlgili sayfalar

JavaScript rehberi:JavaScript hatası

JavaScript referans el kitabı:JavaScript throw ifadesi