捕获方法内部方法引发的异常

时间:2016-11-21 02:06:12

标签: java exception error-handling exception-handling

所以,假设我有一个类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类上进行错误处理(捕获例外)吗?假设我不能抛弃图层类

1 个答案:

答案 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类,前一选项可能就是您的想法。