我对异常处理和日志记录的关注并没有多大区别,因为两者都是跨领域的关注。你怎么看?它不应该单独处理而不是与方法实现的核心逻辑交错处理吗?
编辑:我想说的是,在我看来,方法实现应只包含成功执行路径的逻辑,而异常应在其他地方处理。这与已检查/未检查的异常无关。
例如,一种语言可以通过使用如下结构以完全检查的方式处理异常:
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
}
}
}
在上述概念性语言中,程序在没有FileReader
处理程序的情况下将无法编译,因为FileReader
类的readFile不会引发异常。因此,通过声明FileReader
处理程序,编译器可以确保对其进行处理,然后程序可以进行编译。
这样,我们就可以同时处理已检查和未检查的异常问题:健壮性和可读性。