所以,假设我有一个类App,我正在进行错误处理,在这个特定的类上我做
try {
layermethod();
} catch (IOException e) {
Message.fileNotFound(filename);
}
layermethod()
属于Layer
类,它是一个“掩码”类,用于将信息从App传递到Core应用程序和对象。
所以在类层layermethod()
中只定义为
public void layermethod(Parser _parser) {
_parser.throwmethod(_interpreter);
}
只有在Parser Class中我才有实际抛出异常的方法
public void throwmethod(Parser _parser) throws IOException {
// method implementation
}
不幸的是,我收到了错误
error: unreported exception IOException; must be caught or declared to be thrown
_parser.throwmethod(_parser);
^
因为我没有在图层类上捕获异常。
有什么办法我只能在App类上进行错误处理(捕获例外)吗?假设我不能抛弃图层类
答案 0 :(得分:1)
您有两种选择。您可以重构Layer.layermethod()
以同时抛出IOException
:
public void layermethod(Parser _parser) throws IOException {
_parser.throwmethod(_interpreter);
}
或者,您可以在上面的方法中显式添加try catch块:
public void layermethod(Parser _parser) {
try {
_parser.throwmethod(_interpreter);
} catch (IOException e) {
// handle exception here
}
}
鉴于您似乎希望将异常带入App
类,前一选项可能就是您的想法。