Menu
Coddy logo textTech

İstisnaları Fırlatma

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

Java'da throw anahtar kelimesi bir istisnayı açıkça fırlatmanızı sağlar. İşte temel yapı:

throw new ExceptionType("Error message");

Bileşenler şunlardır:

  • throw: İstisna fırlatmak için anahtar kelime
  • new ExceptionType: Yeni bir istisna oluşturur (IllegalArgumentException gibi)
  • "Error message": Neyin yanlış gittiğini tanımlar

Hadi bunu eylemde görelim:

int age = -5;
if (age < 0) {
    throw new IllegalArgumentException("Age cannot be negative");
}

Yukarıdaki kodu çalıştırdıktan sonra, program şu istisnayı fırlatır:

IllegalArgumentException: Age cannot be negative

challenge icon

Görev

Kolay

validateAge adında iki argüman alan bir metot oluşturun:

  1. Doğrulanacak bir tamsayı (age)
  2. Doğrulama kurallarını belirleyen bir boolean (strict)

Metot bu kurallara göre istisnalar fırlatmalıdır:

  • Eğer age negatifse: "Age cannot be negative" mesajı ile IllegalArgumentException fırlatın
  • Eğer age 150'den büyükse: "Age cannot be greater than 150" mesajı ile IllegalArgumentException fırlatın
  • Eğer strict true ise ve age 0 ise: "Age cannot be zero in strict mode" mesajı ile IllegalArgumentException fırlatın
  • Hiçbir istisna fırlatılmadıysa: age'i string olarak döndürün

Kopya kağıdı

throw anahtar kelimesi bir istisna atmaya açıkça izin verir:

throw new ExceptionType("Error message");

Bileşenler:

  • throw: İstisna atmak için anahtar kelime
  • new ExceptionType: Yeni bir istisna oluşturur (IllegalArgumentException gibi)
  • "Error message": Nelerin yanlış gittiğini tanımlar

Örnek:

int age = -5;
if (age < 0) {
    throw new IllegalArgumentException("Age cannot be negative");
}

Kendin dene

import java.util.Scanner;

public class Main {
    public static String validateAge(int age, boolean strict) {
        // Kodu buraya yazın
    }
    
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int age = Integer.parseInt(scanner.nextLine());
        boolean strict = Boolean.parseBoolean(scanner.nextLine());
        
        try {
            System.out.println(validateAge(age, strict));
        } catch (IllegalArgumentException 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