我有java类与从网站获取图像的方法:如何捕捉一个java选中/运行时异常(特别是抛出:SecurityException)
private Image image;
private int height;
private int width;
private String imageUri;
public Image getImage() {
if (image == null) {
log.info("Fetching image: " + imageUri);
try {
URL iURL = new URL(imageUri);
ImageIcon ii = new ImageIcon(iURL);
image = ii.getImage();
height = image.getHeight(null);
width = image.getWidth(null);
} catch (SecurityException e) {
log.error("Unable to fetch image: " + imageUri,e);
} catch (MalformedURLException e) {
log.error("Unable to fetch image: " + imageUri,e);
}
}
return image;
}
的问题是,有时imageUri我尝试获取得到重定向,导致ImageIcon构造函数抛出一个java.lang.SecurityException - 这不会被catch子句捕获,导致我的程序终止。
任何人都可以建议我怎么会发现这个异常?
感谢
我用setImageBitmap看到您的编辑代码没有问题。尝试通过它进行调试。 – Kolibri 2009-10-10 14:39:21
您好Kolibri - 我发现了这个问题:异常是由一个单独的线程引发的ImageIcon构造函数产生 - 因此我无法捕捉它。 – 2009-10-10 14:46:03
哈,多么有趣的错误。我永远不会猜到ImageIcon构造函数会产生一个新的线程。你将不得不做一个Thread.UncaughtExceptionHandler来处理这个未经检查的异常。 – Kolibri 2009-10-10 15:33:41