logo

Java Özel İstisnası

Java'da, Exception sınıfından türetilmiş sınıflar olan kendi istisnalarımızı oluşturabiliriz. Kendi İstisnamızı oluşturmak, özel istisna veya kullanıcı tanımlı istisna olarak bilinir. Temel olarak, Java özel istisnaları, istisnayı kullanıcının ihtiyacına göre özelleştirmek için kullanılır.

InvalidAgeException sınıfının Exception sınıfını genişlettiği örnek 1'i düşünün.

Özel istisnayı kullanarak kendi istisnanızı ve mesajınızı alabiliriz. Burada, oluşturduğumuz nesne üzerinde getMessage() metodu kullanılarak elde edilebilecek superclass yani Exception sınıfının yapıcısına bir string aktardık.

Bu bölümde özel istisnaların Java programlarında nasıl uygulandığını ve kullanıldığını öğreneceğiz.

Neden özel istisnalar kullanmalısınız?

Java istisnaları, programlamada meydana gelebilecek genel istisna türlerinin neredeyse tamamını kapsar. Ancak bazen özel istisnalar oluşturmamız gerekebilir.

Özel istisnaları kullanmanın birkaç nedeni aşağıda verilmiştir:

sayılarla bir milyon
  • Mevcut Java istisnalarının bir alt kümesini yakalamak ve bunlara özel muamele sağlamak.
  • İş mantığı istisnaları: İş mantığı ve iş akışıyla ilgili istisnalardır. Uygulama kullanıcılarının veya geliştiricilerin sorunun tam olarak anlaşılmasında fayda vardır.

Özel istisna oluşturabilmek için Java.lang paketine ait Exception sınıfını genişletmemiz gerekiyor.

WrongFileNameException adlı özel bir istisna oluşturduğumuz aşağıdaki örneği düşünün:

 public class WrongFileNameException extends Exception { public WrongFileNameException(String errorMessage) { super(errorMessage); } } 

Not: Hata mesajı olarak String'i alan yapıcıyı yazmamız gerekiyor ve buna ebeveyn sınıf yapıcısı deniyor.

Örnek 1:

Java özel istisnasının basit bir örneğini görelim. Aşağıdaki kodda InvalidAgeException yapıcısı argüman olarak bir dize alır. Bu dize, super() yöntemi kullanılarak üst sınıf Exception'ın yapıcısına iletilir. Ayrıca Exception sınıfının yapıcısı parametre kullanılmadan çağrılabilir ve super() yönteminin çağrılması zorunlu değildir.

TestCustomException1.java

 // class representing custom exception class InvalidAgeException extends Exception { public InvalidAgeException (String str) { // calling the constructor of parent Exception super(str); } } // class that uses custom exception InvalidAgeException public class TestCustomException1 { // method to check the age static void validate (int age) throws InvalidAgeException{ if(age <18){ throw an object of user defined exception new invalidageexception('age is not valid to vote'); } else { system.out.println('welcome main method public static void main(string args[]) try calling the validate(13); catch (invalidageexception ex) system.out.println('caught exception'); printing message from invalidageexception system.out.println('exception occured: ' + ex); system.out.println('rest code...'); < pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/exception-handling/13/java-custom-exception.webp" alt="Java Custom Exception"> <h3>Example 2:</h3> <p> <strong>TestCustomException2.java</strong> </p> <pre> // class representing custom exception class MyCustomException extends Exception { } // class that uses custom exception MyCustomException public class TestCustomException2 { // main method public static void main(String args[]) { try { // throw an object of user defined exception throw new MyCustomException(); } catch (MyCustomException ex) { System.out.println(&apos;Caught the exception&apos;); System.out.println(ex.getMessage()); } System.out.println(&apos;rest of the code...&apos;); } } </pre> <p> <strong>Output:</strong> </p> <img src="//techcodeview.com/img/exception-handling/13/java-custom-exception-2.webp" alt="Java Custom Exception"> <hr></18){>

Çıktı:

Java Özel İstisnası