如何处理自定义库中的异常

时间:2016-04-01 18:11:10

标签: java

我一直在写我的个人图书馆,而且我一直在努力实现我在另一个程序中使用的代码:

public ImagePanel(String imgpath) {
    try {
        image = ImageIO.read(new File(imgpath));
    catch (IOException e) {
        // handle exception
    }
}

因为这个代码被添加到库中,所以我想要在我使用它的新代码中处理异常。

这是我应该如何正确地将相同的代码实现到我的库中吗?

public ImagePanel(String imgpath) throws IOException {
    image = ImageIO.read(new File(imgpath));
}

这就是我在另一个程序中使用我的库的方式吗?

import testlib.ImagePanel;
ImagePanel boardPanel = null;
try {
    ImagePanel boardPanel = new ImagePanel("imageexample.png");
} catch (IOException e) {
    e.printStackTrace();
}
// do stuff here (boardPanel is "null" above because I've gotten an error that it's not initialized as I do that in the try/catch block)

2 个答案:

答案 0 :(得分:0)

处理它的最佳方法IMO将IOException包装在一个错误中(即new Error(e)并抛出错误。再次,IMO这是合理的,因为文件存在或不存在真正需要运行时,而不是编译时修复。这样你就不必在构造函数中声明Exception,比如

public ImagePanel(String imgpath) {
  try {
    image = ImageIO.read(new File(imgpath));
  }
  catch (IOException e) {
    throw new Error(e);
  }
} 

答案 1 :(得分:-1)

如果发生异常,您可以返回null。它不会使程序崩溃。

但是当你'抛出'异常时,如果用户没有“抓住”它,它可能会使程序崩溃。

<div id="overall">
  <div class="content" id="first">
    <img src="https://verkoren.files.wordpress.com/2013/05/junk-dump-22918.jpg" />
  </div>
</div>