如何解决Java-摆脱NullPointerException
| 考虑两个案例case1和case2以及两个方法method1和method2。说方法1解决案例1,方法2解决案例2。现在,我有一个可能以case1或case2结尾的程序。在我的代码中,无论发生什么情况,我都调用method1。但是,如果出现case2,则method1会给出nullpointerexception。 我想要的是以下内容:我的代码应首先调用method1,如果发生异常,则将调用method2。我该怎么办?由于我没有有关试捕的信息,因此我确实需要一些帮助!解决方法
您可以这样做:
try {
method1();
}
catch ( Exception e ) {
method2();
}
也就是说,通常仅在特殊情况下才依赖异常会更好。对于正常的控制流程,可以使用if:
if ( isCase2() ) {
method2();
}
else {
method1();
}
,捕获NullPointerException
是一个糟糕的实践-您可能没有捕获到要捕获的特定异常。您有两种选择:
1)抛出自己的异常并在以后捕获:
public void method1(Case caze) throws MyException {
if (case.getType() == CaseType.CaseOne) {
// processing
} else {
throw new MyException(\"Wrong case type\");
}
}
和客户端代码:
try {
method1(caze);
} catch (MyException e) {
// log the excpetion
method2(caze);
}
2)返回一个布尔值标志,指示处理已成功完成。
请记住,在您的情况下,分析值总是比使用try-catch机制更好。我会为您建议第二种。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。