Menu
CoddyTech

Ném ngoại lệ

Thuộc phần Logic và luồng chương trình trong hành trình Java của Coddy. Bài học 42 trên 59.

Từ khóa throw trong Java cho phép bạn chủ động ném một ngoại lệ. Đây là cấu trúc cơ bản:

throw new ExceptionType("Error message");

Các thành phần gồm:

  • throw: Từ khóa dùng để ném ngoại lệ
  • new ExceptionType: Tạo một ngoại lệ mới (chẳng hạn như IllegalArgumentException)
  • "Error message": Mô tả lỗi đã xảy ra

Hãy xem cách hoạt động:

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

Sau khi chạy đoạn code trên, chương trình đưa ra ngoại lệ:

IllegalArgumentException: Age cannot be negative

challenge icon

Thử thách

Dễ

Tạo phương thức có tên validateAge nhận hai đối số:

  1. Một số nguyên (age) cần kiểm tra
  2. Một giá trị boolean (strict) xác định các quy tắc kiểm tra

Phương thức sẽ ném ngoại lệ theo các quy tắc sau:

  • Nếu age là số âm: ném IllegalArgumentException với thông báo "Age cannot be negative"
  • Nếu age lớn hơn 150: ném IllegalArgumentException với thông báo "Age cannot be greater than 150"
  • Nếu strict là true và age bằng 0: ném IllegalArgumentException với thông báo "Age cannot be zero in strict mode"
  • Nếu không có ngoại lệ nào được ném: trả về age dưới dạng chuỗi

Tự làm thử

import java.util.Scanner;

public class Main {
    public static String validateAge(int age, boolean strict) {
        // Viết code của bạn ở đây
    }
    
    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 iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Logic và luồng chương trình

Tự luyện tập: Trình biên dịch Java online