Bu örnekte, Java'da özel işaretli ve kontrol edilmemiş istisna oluşturmayı öğreneceğiz.
Bu örneği anlamak için, aşağıdaki Java programlama konuları hakkında bilgi sahibi olmalısınız:
- Java İstisnaları
- Java Özel Durum İşleme
- Java Sınıfı ve Nesneleri
Örnek 1: Özel işaretli istisna oluşturmak için Java programı
import java.util.ArrayList; import java.util.Arrays; // create a checked exception class class CustomException extends Exception ( public CustomException(String message) ( // call the constructor of Exception class super(message); ) ) class Main ( ArrayList languages = new ArrayList(Arrays.asList("Java", "Python", "JavaScript")); // check the exception condition public void checkLanguage(String language) throws CustomException ( // throw exception if language already present in ArrayList if(languages.contains(language)) ( throw new CustomException(language + " already exists"); ) else ( // insert language to ArrayList languages.add(language); System.out.println(language + " is added to the ArrayList"); ) ) public static void main(String() args) ( // create object of Main class Main obj = new Main(); // exception is handled using try… catch try ( obj.checkLanguage("Swift"); obj.checkLanguage("Java"); ) catch(CustomException e) ( System.out.println("(" + e + ") Exception Occured"); ) ) )
Çıktı
Swift, ArrayList'e eklendi (CustomException: Java zaten mevcut) İstisna Oluştu
Yukarıdaki örnekte, Exception
CustomException adlı özel bir istisna oluşturmak için sınıfı genişlettik . Burada, anahtar kelimeyi Exception
kullanarak CustomException sınıfından sınıf yapıcısını çağırıyoruz super()
.
Yöntemin içinde, checkLanguage()
istisna durumunu kontrol ettik ve istisna oluşursa, try… catch bloğu istisnayı ele alır.
Burada, bu kontrol edilen istisnadır. Java'da da denetlenmemiş istisna sınıfı oluşturabiliriz. İşaretli ve kontrol edilmemiş istisna hakkında daha fazla bilgi edinmek için Java İstisnası sayfasını ziyaret edin.
Örnek 2: Özel kontrol edilmemiş istisna sınıfı oluşturun
import java.util.ArrayList; import java.util.Arrays; // create a unchecked exception class class CustomException extends RuntimeException ( public CustomException(String message) ( // call the constructor of RuntimeException super(message); ) ) class Main ( ArrayList languages = new ArrayList(Arrays.asList("Java", "Python", "JavaScript")); // check the exception condition public void checkLanguage(String language) ( // throw exception if language already present in ArrayList if(languages.contains(language)) ( throw new CustomException(language + " already exists"); ) else ( // insert language to ArrayList languages.add(language); System.out.println(language + " is added to the ArrayList"); ) ) public static void main(String() args) ( // create object of Main class Main obj = new Main(); // check if language already present obj.checkLanguage("Swift"); obj.checkLanguage("Java"); ) )
Çıktı
Swift is added to the ArrayList Exception in thread "main" CustomException: Java already exists at Main.checkLanguage(Main.java:21) at Main.main(Main.java:37)
Yukarıdaki örnekte, RuntimeException
denetlenmemiş bir özel istisna sınıfı oluşturmak için sınıfı genişlettik .
Burada, herhangi bir try… catch bloğu ilan etmediğimizi fark edebilirsiniz . Bunun nedeni, kontrol edilmeyen istisnanın çalışma zamanında kontrol edilmesidir.
Bunun yanı sıra, kontrol edilmeyen istisnanın diğer işlevselliği, yukarıda bahsedilen programa benzer.