try{
imgball = Image.createImage("/ball.jpg");
//imgpad = Image.createImage("/ball.jpg");
}
catch(Exception e)
{}
上面的代码按原样运行。但是当我打开imgpad语句时,它给出了未捕获NullPointerException的错误?有什么不对?
P.S。我在一个不同的线程工作。如果那很重要。
答案 0 :(得分:0)
NullPointerException(NPE)必须在代码中稍后。您的catch块将在图像加载期间捕获任何NPE。
答案 1 :(得分:0)
正如mdma所提到的,NullPointerException必须更晚,因为当Image.createImage("/ball.jpg");
失败时,它会抛出你捕获的异常。由于您抓住它然后什么都不做,imgball
的值将被取消(null
)。
由于您使用的是其他线程,因此您可能很快就会访问该变量,但我认为上述原因更准确,因为imgball
可能始终无法创建,因为您将其赋予绝对路径。
答案 2 :(得分:0)
确定。这是我的错。我想在此明确表示让其他人知道。
我犯的错误实际上来自主线程。我写了以下内容:
refcan = new ReflectCanvas(2);
d.setCurrent(refcan);
我正在构造函数ReflectCanvas()中加载图像。所以它可以承受一个图像的速度,但不是两个:)