我一直在写我的个人图书馆,而且我一直在努力实现我在另一个程序中使用的代码:
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)
答案 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>