Java İstisnaları - Deneyin...Yakala
Java İstisnaları
Java kodunu çalıştırırken farklı hatalar oluşabilir: programcı tarafından yapılan kodlama hataları, yanlış girişten kaynaklanan hatalar veya diğer öngörülemeyen şeyler.
Bir hata oluştuğunda, Java normalde durur ve bir hata mesajı oluşturur. Bunun teknik terimi şudur: Java bir istisna atar (bir hata atar).
Java dene ve yakala
İfade try
, yürütülürken hatalara karşı test edilecek bir kod bloğu tanımlamanıza izin verir.
Deyim catch
, try bloğunda bir hata meydana gelirse yürütülecek bir kod bloğu tanımlamanıza izin verir.
ve anahtar sözcükleri çiftler halinde gelir try
:catch
Sözdizimi
try {
// Block of code to try
}
catch(Exception e) {
// Block of code to handle errors
}
Aşağıdaki örneği göz önünde bulundurun:
myNumbers[10] mevcut olmadığı için bu bir hata üretecektir .
public class Main {
public static void main(String[ ] args) {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]); // error!
}
}
Çıktı şöyle bir şey olacaktır:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
at Main.main(Main.java:4)
Bir hata oluşursa, try...catch
hatayı yakalamak ve işlemek için bazı kodları çalıştırmak için kullanabiliriz:
Örnek
public class Main {
public static void main(String[ ] args) {
try {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]);
} catch (Exception e) {
System.out.println("Something went wrong.");
}
}
}
Çıktı olacaktır:
Something went wrong.
Nihayet
İfade , sonuçtan bağımsız olarak finally
, sonrasında kodu yürütmenize izin verir :try...catch
Örnek
public class Main {
public static void main(String[] args) {
try {
int[] myNumbers = {1, 2, 3};
System.out.println(myNumbers[10]);
} catch (Exception e) {
System.out.println("Something went wrong.");
} finally {
System.out.println("The 'try catch' is finished.");
}
}
}
Çıktı olacaktır:
Something went wrong.
The 'try catch' is finished.
fırlatma anahtar kelimesi
İfade throw
, özel bir hata oluşturmanıza olanak tanır.
İfade , bir istisna türüylethrow
birlikte kullanılır . Java'da birçok istisna türü mevcuttur: ,
, , , vb:ArithmeticException
FileNotFoundException
ArrayIndexOutOfBoundsException
SecurityException
Örnek
Yaş 18'in altındaysa bir istisna atın ("Erişim reddedildi" yazdırın). Yaş 18 veya daha büyükse, "Erişim izni verildi" ifadesini yazdırın:
public class Main {
static void checkAge(int age) {
if (age < 18) {
throw new ArithmeticException("Access denied - You must be at least 18 years old.");
}
else {
System.out.println("Access granted - You are old enough!");
}
}
public static void main(String[] args) {
checkAge(15); // Set age to 15 (which is below 18...)
}
}
Çıktı olacaktır:
Exception in thread "main" java.lang.ArithmeticException: Access denied - You must be at least 18 years old.
at Main.checkAge(Main.java:4)
at Main.main(Main.java:12)
Yaş 20 olsaydı, bir istisna almazsınız :
Örnek
checkAge(20);
Çıktı olacaktır:
Access granted - You are old enough!