tôi phải trả lời câu hỏi này với một số mã:Tại sao có trật tự quan trọng khi bắt ngoại lệ?
Giả sử tôi đã viết các phương pháp kỹ thuật sau:
public void manipulateData () throws java.sql.SQLException, java.sql.SQLDataException
Bạn đang viết mã cho một chương trình cơ sở dữ liệu sẽ sử dụng phương pháp này và bạn muốn xử lý riêng từng số . Điều khoản try/catch trông như thế nào?
Bạn có thể sử dụng no-ops-- các khối trống {} - cho nội dung điều khoản ghi.
Chúng tôi chỉ quan tâm đến cú pháp và cấu trúc của các câu lệnh ở đây.
Tôi đã trả lời với điều này:
try {
} catch(java.sql.SQLException e) {
}
catch(java.sql.SQLDataException e) {
}
Ông không chấp nhận câu trả lời vì lý do này:
"mệnh đề catch của bạn là theo thứ tự sai bạn có thể giải thích lý do tại sao những vấn đề trật tự.? "
Anh ấy có đúng trong câu trả lời của mình không?
Một ngoại lệ sẽ chỉ bị bắt một lần. Nếu ngoại lệ đầu tiên phù hợp với loại, thứ hai và như vậy sẽ bị bỏ qua, thậm chí chúng có thể là loại phụ. Vì vậy, các loại phụ bình thường đến đầu tiên và được theo sau bởi các loại siêu, vì vậy các loại ngoại lệ khác nhau sẽ bị bắt chính xác. – shuangwhywhy
Điều này gây ra việc biên dịch ** Mã không thể truy cập là một lỗi **! –