Menu
Coddy logo textTech

Özel İstisnalar

Coddy'nin Java Journey'sinin Mantık & Akış bölümünün bir parçası — ders 43 / 59.

Kendi istisna sınıfınızı Exception sınıfını genişleterek oluşturabilirsiniz. Bu, uygulamanızda belirli türdeki hataları işlemek istediğinizde faydalıdır.

Özel bir istisna oluşturmanın yolu şöyle:

public class AgeException extends Exception {
   public AgeException(String message) {
       super(message);
   }
}

Ve işte nasıl kullanılacağı:

if (age < 0) {
   throw new AgeException("Invalid age: " + age);
}

Yukarıdaki kodu age = -5 ile çalıştırdıktan sonra, program şu hatayı fırlatır:

AgeException: Invalid age: -5

challenge icon

Görev

Kolay

EmailException adında özel bir istisna sınıfı ve bir argüman alan validateEmail adında bir metod oluşturun:

  1. Doğrulanacak bir String (email)

Metod, şu mesajlarla özel istisnanızı fırlatmalıdır:

  • Eğer email null ise: "Email cannot be null"
  • Eğer email boş ise: "Email cannot be empty"
  • Eğer email @ içermiyorsa: "Email must contain @"
  • Eğer email @'den önce herhangi bir metin içermiyorsa: "Email must have a local part"
  • Eğer doğrulama başarılı olursa: "Valid email" döndürün

Kopya kağıdı

Exception sınıfını genişleterek özel istisnalar oluşturun:

public class AgeException extends Exception {
   public AgeException(String message) {
       super(message);
   }
}

throw anahtar kelimesini kullanarak özel istisnaları fırlatın:

if (age < 0) {
   throw new AgeException("Invalid age: " + age);
}

Kendin dene

import java.util.Scanner;

class EmailException extends Exception {
    public EmailException(String message) {
        super(message);
    }
}

public class Main {
    public static String validateEmail(String email) throws EmailException {
        // Kodunuzu buraya yazın
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        String email = scanner.nextLine();
        if (email.equals("null")) {
            email = null;
        }
        
        try {
            System.out.println(validateEmail(email));
        } catch (EmailException e) {
            System.out.println(e.getMessage());
        }
    }
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık & Akış bölümündeki tüm dersler