Hata(İstisna) Yönetimi
- try
- catch
- finally
try catch finally
Try : Hatayı yakalar. Bir hataya neden olabilecek kodlar bu blok içine yazılır. Burada bir hata/istisna meydana geldiğinde catch bloğu çalışır.
on: Hata tipi belirtilmesi gerektiğinde on bloğu kullanılır.
Catch:, hata olursa bu blok içindeki kodlar çalışır.
finally: Hata olsa da olmasa da çalıştırılacak kod bloğudur.
try {
// hataya neden olacak kodlar buraya yazılır hata yakalanır
}
on Exception1 {
// hata tipi belirtilmesi gerekiyorsa buraya
}
catch Exception2 {
// hata olursa burası çalışır
}
finally {
// bu blok ne olursa olsun çalışır
}
Aşağıda 12 0(sıfır)a bölünmeye çalışıldığı için bir istisna/hata fırlatır. on bloğu, bu hatayı yakalar ve işler..
main() {
int x = 12;
int y = 0;
int res;
try {
res = x ~/ y;
}
on IntegerDivisionByZeroException {
print('Sıfıra bölünemez');
}
} }
Hata/İstisna Türleri
DeferredLoadException :Ertelenmiş bir kütüphane yüklenemediğinde atılan istisna.
FormatException : Bir string veya başka bir veri beklenen bir formata sahip olmadığında ve ayrıştırılamadığında veya işlenemediğinde ortaya çıkan istisna.
IntegerDivisionByZeroException: Bir sayı sıfıra bölündüğünde atılır.
IOException: Tüm Girdi-Çıktıyla ilgili istisnalar için temel sınıf.
IsolateSpawnException:Bir izolat oluşturulamadığında atılır.
Timeout: Asenkron(Zaman uyumsuz) bir sonuç beklenirken zaman aşımı gerçekleştiğinde atılır.