如何处理java.lang.nullpointerexception
大家好,我真的被卡住了,我一直收到如何处理java.lang.nullpointerexception,java,exception,nullpointerexception,Java,Exception,Nullpointerexception,大家好,我真的被卡住了,我一直收到java.lang.NullPointerException。我试着在每一个可能的地方处理它,但我没有成功。这是家庭作业。如果您可以查看并给出一些关于java.lang.NullPointerException的反馈,那就太好了。 异常发生在Captain.handleProblem()和MalfuctionHandler.ProccessFunctional() 您从未初始化类SpaceMonkey中的故障处理程序对象,并尝试在handleProblem方法中
java.lang.NullPointerException
。我试着在每一个可能的地方处理它,但我没有成功。这是家庭作业。如果您可以查看并给出一些关于java.lang.NullPointerException
的反馈,那就太好了。
异常发生在Captain.handleProblem()
和MalfuctionHandler.ProccessFunctional()
您从未初始化类SpaceMonkey中的故障处理程序对象,并尝试在handleProblem方法中调用其getDescription()方法。在java中,对象的默认值为null,表示您的故障处理程序故障;此处为null,您正试图访问其null上的方法
由于故障处理程序是一个抽象类,请使用其子类(SpaceMonkey)初始化它
故障对象未初始化,它只是在船长类中声明。
此外,捕获NullPointerException也是不可取的。相反,您应该在代码中进行验证和检查,以便不会产生此类异常。默认情况下,实例变量的对象类型为null
MalfunctionHandler malfunction;
及
都是一样的。你们班有这个问题
这里
if(failure.getDescription()==null)
和failure为null,因此您在这里获得NPE。您可以发布NPE的堆栈跟踪吗?发布您刚在Begging中得到的所有错误消息,在代码之前您从未在Captain
类中初始化FailureFunctionHandler-failure
,所以它是空的,并且发生故障。getDescription()
将抛出一个NPE-您的代码中可能有其他NPE。@assylias。。您应该将其作为答案发布。@RohitJain MailfunctionHandler是一个抽象类而不是故障:)对不起,我的意思是MailfunctionHandler
。故障是那个级别的参考。@RohitJain别担心,顺便说一句,你真是太棒了。。你的答案信息量很大……)但在我的代码中,它不是故障,而是故障处理器故障
if(malfunction.getDescription() == null)
MalfunctionHandler malfunction; = new SpaceMonkey(Severity);
MalfunctionHandler malfunction;
MalfunctionHandler malfunction = null;