Em có thắc mắc liên quan đến phần Exception Class trong Java như thế này:
Có khá nhiều exception class dùng cho try{ } catch ( exception_class e){ } như InputMismatchException, IOException, NoSuchMethodException, FileNotFoundException…
Các class này có nhất thiết phải sử dụng cho các trường hợp tương ứng mà nó hỗ trợ không ạ? Trong khi ta lại có class Exception có thể dùng bắt mọi ngoại lệ, tại sao không dùng nó cho mọi lúc mà lại phải chia ra các exception class khác nữa thế ạ.
Xin cảm ơn.
Exception trong Java
Nhiều khi mình cần chỉ rõ ràng loại Exception để thông báo và xử lý một cách chính xác nhất
try{
}
catch (IOException e){
}
catch (Exception e){
}
Nó bắt lỗi theo thứ tự IOException rồi đến Exception. Vậy khi bắt từng lỗi sẽ chính xác hơn.
Thường 1 chương trình bi dính Exception có thể do nhiều nguyên nhân. Bạn phải ghi cụ thể ra cho người dùng ví dụ lỗi nhập xuất, lỗi không có trong dữ liệu,… Catch exception theo thứ tự từ cụ thể đến tổng quát.
Các class như IOException, FileNotFoundException, ArrayOutOfBoundException hoặc NullPointerException là con (kế thừa) của super class Exception
Những class con này sẽ là trường hợp cụ thể còn Exception sẽ là chung chung
Vd: bạn có 1 cái xe vs ngoại lệ chung là "Hỏng" và sẽ có các trường hợp như
"Hỏng Bô", "Hỏng phanh", "Hỏng bình xăng", "Hỏng đèn",... thì các trường hợp
trên thì chỉ cần nói vs ông chủ sửa xe là Hỏng cái gì đấy -> Ổng sẽ tìm đến đúng
vị trí ấy và xem (nếu có lỗi thì chữa, không thì ê mặc đi về =)).) -> 6-9 phút
Còn bạn đến và nói "Chú xem giùm con nó bị lỗi đíu gì mà ếch chạy được :V"
ông thợ sữa sẽ mò tất cả chung quanh địa điểm có thể hỏng hóc mà sửa
=> 69 phút
Thì giống như vậy, việc dùng Exception không giúp bạn xác định đều gì phải làm trong khi gặp các trường hợp khác mà còn làm chậm các thread của bạn
Khi "Hỏng" -> Thay mới
"Bô xe hỏng" -> "Hỏng" -> Thay mới
"Cái đèn xe bị lỏng dây" -> "Hỏng" -> Thay mới
dafug!!! Ghim lại là được mà %&^%&*^$&$^$%&
Đó là lí do tại sao người ta tạo ra các con của Exception
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?