微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Java-摆脱NullPointerException

如何解决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 举报,一经查实,本站将立刻删除。