Try - Catch
Try - catch yapısı
Try - Catch denetim yapısı hataları yakalarken hata mesajı oluşturmadan ya da kodlamayı kesmeden sessizce denetimi tamamlanmaktır.
İstisnai durumu yaratabilecek kod try bloğu içine yazılır. Catch bloğunda ise istisnai durum oluştuğunda yapılması gereken işlemlere ait kod bulunur. .NET framework'ünde Exception sınıfından türemiş olan spesifik hatalara yönelik istisnai durum sınıfları mevcuttur. Bu sınıfları birden fazla catch bloğunda tanımlayarak oluşacak hatayı klasifike edebiliriz. Finally bloğu içindeki kod ise istisnai durum oluşsun veya oluşmasın çalışacak koddur.
Basitce Try - Catch yapısı şöyledir;
{
//İstisnai durum oluşturabilecek kod
}
catch(OverflowException e)
{
//OverflowException İstisnai durum oluştuğunda çalışacak kod
}
catch( e)
{
//Spesifik İstisnai durum oluştuğunda çalışacak kod
}
catch(Exception e)
{
//Genel İstisnai durum oluştuğunda çalışacak kod
}
finally
{
//İstisnai durum oluşsun veya oluşmasın çalışacak kod.
}
Eğer 'try' bölümünde bir hata oluşursa, hatayla ilgili bilgiyi de geçirerek hemen 'catch' bölümüne geçilir. Aynı hata için değişik tarayıcılar değişik hatalar oluştururlar. Bu deyimleri iç içe kullanırsanız, hatayı içteki 'catch' bölümünden dıştaki 'catch' bölümüne taşıyabilirsiniz. Eğer varsa içteki 'finally' bölümü dıştaki 'catch' çalışmadan bitirilir ama içtekini izleyen kodlama çalıştırılmaz.
Javascript 1.5 documantasyonuna göre altı temel hata türü tanımlanmıştır;
EvalError: eval fonksiyonunun yanlış kullanılması sonuçu çıkar.
RangeError: sayısal bir değer izin verilen sınırları aşması sonuçu oluşur.
ReferenceError: hatalı bir reference kullanılırsa oluşur.
SytaxError: Javascript kodu parse edilişi sırasında çıkar.
TypeError: Bir değişkenin tipi beklenen değilse.
URIError: encodeURI() veya decodeURI() fonksiyonları hatalı kullanılması sonuçu çıkar.
Try - Catch örneği;
<head>
<script type="text/javascript">
function message()
{
try
{
var reply1 = prompt("Kodlarda hata olduğundan veri gönderildiğinde hata oluşur!", "");
alert ( "Girdiğiniz değer " + reply + "!");
}
catch(error)
{
txt="Bir hata tespit edildi! nn";
txt+="Hata raporu yöneticiye bildirilsin mi?n";
if(!confirm(txt))
{
document.location.href="rapor.html";
}
}
}
</script>
</head>
<body>
<input type="button" value=" Tıklayın " onclick="message()" />
</body>
</html>
Bu örnekde alert kısmındaki hatayı try-catch yakalamış vede size ne yapmak istediğinizi sormaktadır.
Tamam seçeneği tıklandığında rapor.html çağrılacaktır...
Aydın ÜMİT