İ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 kelimenew 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
Görev
KolayvalidateAge adında iki argüman alan bir metot oluşturun:
- Doğrulanacak bir tamsayı (
age) - 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 kelimenew 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());
}
}
}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
1Çok Boyutlu Diziler
2D Diziler Temelleri2D Dizi Elemanlarına Erişim2D Dizilerle İç İçe DöngülerÖzet - 2D DizilerMatris Toplama ve ÇıkarmaJagged Diziler3D Diziler ve ÖtesiYaygın 2D Dizi DesenleriÖzet - Diziler Hakkında Her Şey2HashMap Bölüm 1
HashMap Nedir?HashMap TanımlamaDeğerlere ErişimAnahtarın Varlığını Kontrol EtmeSözlükleri DeğiştirmeÖzet - HashMap3HashMap Bölüm 2
HashMap YöntemlerikeySet() ile YinelemeentrySet() ile Yinelemeİç İçe HashMapÖzet - Depo YönetimiÖzet - HashMap İşlemleri6İleri Akış Kontrolü
Etiketli İfadelerSwitch İfadesiDesen EşleştirmeKoruyucu Yan CümlelerÖzet - Akış Kontrolü9Proje - Benzersiz Kelime Sayacı
Metin Girişi ve DepolamaKelime İşleme