Bài học theo mô-đun (1/2)
Khối thử bắt
Trong Java, lỗi thời gian chạy được xử lý bằng cách sử dụng Ngoại lệ. Xử lý ngoại lệ cho phép chúng tôi chặn các điều kiện bất thường và ngăn chương trình bị lỗi.
Cấu trúc try-catch
Để xử lý một ngoại lệ tiềm ẩn, chúng tôi gửi mã rủi ro vào khối try. Nếu xảy ra lỗi bên trong khối try, JVM sẽ ngừng thực thi lỗi đó và tìm kiếm khối catch phù hợp để xử lý ngoại lệ.
try {
int result = 10 / 0; // Generates ArithmeticException
System.out.println("This will not be printed");
} catch (ArithmeticException e) {
System.out.println("Arithmetic error occurred: " + e.getMessage());
}Khối finally
Khối finally là tùy chọn và luôn được thực thi, bất kể có ném ngoại lệ hay không. Đó là lý tưởng để giải phóng tài nguyên hoặc thực hiện các hoạt động dọn dẹp.
try {
System.out.println("Executing logic");
} catch (Exception e) {
System.out.println("Error");
} finally {
System.out.println("This block is always executed");
}Ném ngoại lệ: throw
Chúng ta có thể cố ý ném một ngoại lệ bằng cách sử dụng từ khóa throw theo sau là một phiên bản mới của một lớp ngoại lệ.
public static void checkScore(int score) {
if (score < 0 || score > 100) {
throw new IllegalArgumentException("Score must be between 0 and 100");
}
}Hãy tự mình thử
Hoàn tất mã bằng cách chèn khối try-catch để xử lý ArithmeticException tiềm ẩn do phép chia a/b. Trong trường hợp có lỗi, hãy in 'Lỗi: chia cho 0'.
Hiển thị gợi ý
Chèn phép chia bên trong khối `try` và bắt `ArithmeticException`, in thông báo được yêu cầu.
Giải pháp khả dụng sau 3 lần thử
Hoàn thành mã để triển khai khối thử-bắt-cuối cùng. Trong khối thử, hãy thử chuyển đổi chuỗi str thành số nguyên bằng Integer.parseInt. Trong khối bắt, chặn NumberFormatException và in 'Số không hợp lệ'. Trong khối cuối cùng, in 'Cuối cùng'.
Hiển thị gợi ý
Viết cấu trúc khối `try { ... } Catch (NumberFormatException e) { ... } cuối cùng { ... }`.
Giải pháp khả dụng sau 3 lần thử
Hoàn thành phương thức checkAge bằng cách ném IllegalArgumentException cùng với thông báo 'Chưa đủ tuổi' nếu độ tuổi được cung cấp nhỏ hơn 18.
Hiển thị gợi ý
Sử dụng từ khóa `if (tuổi < 18)` và `throw new` để khởi tạo và ném ngoại lệ.
Giải pháp khả dụng sau 3 lần thử