Tôi không thấy nhiều sự khác biệt giữa các mối quan tâm về xử lý ngoại lệ và đăng nhập rằng cả hai đều là mối quan tâm xuyên suốt. Bạn nghĩ sao? Không nên tự mình xử lý nó chứ không nên xen kẽ với logic cốt lõi mà một phương thức đang thực hiện?
EDIT : Điều tôi đang cố gắng nói, theo tôi, việc triển khai phương thức chỉ nên chứa logic cho đường dẫn thực hiện thành công và các ngoại lệ nên được xử lý ở nơi khác. Đây không phải là về ngoại lệ được kiểm tra / không được kiểm tra.
Ví dụ: một ngôn ngữ có thể xử lý các ngoại lệ theo cách được kiểm tra đầy đủ bằng cách sử dụng các cấu trúc như thế này:
class FileReader {
public String readFile(String path) {
// implement the reading logic, avoid exception handling
}
}
handler FileReader {
handle String readFile(String path) {
when (IOException joe) {
// somehow access the FileInputStram and close it
}
}
}
Trong ngôn ngữ khái niệm trên, chương trình sẽ không được biên dịch nếu không có FileReader
trình xử lý , vì readFile của FileReader
lớp không ném ngoại lệ. Vì vậy, bằng cách khai báo FileReader
trình xử lý , trình biên dịch có thể đảm bảo rằng nó đang được xử lý và sau đó chương trình sẽ biên dịch.
Bằng cách này, chúng tôi có các vấn đề ngoại lệ được kiểm tra và không được kiểm tra tốt nhất: mạnh mẽ và dễ đọc.