相关疑难解决方法(0)

Java风格:正确处理异常

从概念上讲,我一直在决定我的项目的异常处理结构.

假设你有一个例子:

public abstract class Data {
   public abstract String read();
}
Run Code Online (Sandbox Code Playgroud)

还有两个子类FileData,它从一些指定的文件读取你的数据,而StaticData,它只返回一些预定义的常量数据.

现在,在读取文件时,可能会在FileData中抛出IOException,但StaticData将永远不会抛出.大多数样式指南建议将Exception传播到调用堆栈,直到有足够的上下文可用于有效处理它.

但我真的不想在抽象的read()方法中添加throws子句.为什么?因为Data和使用它的复杂机器对文件一无所知,所以它只知道数据.此外,可能还有其他数据子类(以及更多这些子类)从不抛出异常并完美地传递数据.

另一方面,IOException是必要的,因为如果磁盘不可读(或某些此类),则必须抛出错误.所以我看到的唯一出路就是捕获IOException并在其位置抛出一些RuntimeException.

这是正确的哲学吗?

java exception

17
推荐指数
2
解决办法
8379
查看次数

标签 统计

exception ×1

java ×1