问题描述
try{
imgball = Image.createImage(\"/ball.jpg\");
//imgpad = Image.createImage(\"/ball.jpg\");
}
catch(Exception e)
{}
上面的代码按原样工作。但是,当我打开imgpad语句时,它给了我未捕获的NullPointerException错误?有什么问题吗?
附言我正在其他线程中工作。如果那很重要。
解决方法
NullPointerException(NPE)必须在代码的后面。您的catch块将在图像加载期间捕获所有NPE。
,如mdma所述,NullPointerException必须稍后,因为当ѭ1失败时,它将抛出一个您捕获的异常。由于您抓住了它然后什么也不做,因此
imgball
的值将未设置(null
)。
由于您使用的是其他线程,因此访问变量的时间可能太早,但是我认为上述原因更为准确,因为由于给定了绝对路径,所以imgball
可能始终无法创建。
,好。是我的错我想在这里让其他人知道。
我犯的错误实际上是来自主线程。我写了以下内容:
refcan = new ReflectCanvas(2);
d.setCurrent(refcan);
我正在将图像加载到构造函数ReflectCanvas()中。因此它可以承受高达一张图像的速度,但不能承受两幅图像的速度:)