捕获块中的空指针

时间:2011-12-23 06:46:24

标签: java nullpointerexception try-catch throws

我正在使用try catch块来捕获异常。控制台显示它抛出一个空值。但它不会陷入困境。

try {
        System.out.println("Exception here "+SomeObject.getValue());
    } catch (NullPointerException e) {
        // TODO: handle exception
        SomeObject so = new SomeObject();
    }
    SomeObject.setValue(); 
}

如何处理。我还可以使用方法级别throws NullPointerException吗?

3 个答案:

答案 0 :(得分:2)

它确实会进入catch区域。该行还有另一个潜在的NullPointerException(假设你试图说)

so.setValue(); 

说过不建议抛出RuntimeException。最好不要通过try / catch而是通过简单的条件检查来处理代码中的NullPointerException

答案 1 :(得分:0)

捕获UnChecked Exceptions是一个坏主意,而不是捕获NullPointerExcetpion,您可以在If条件中简单地检查空值。

if(SomeObject.getValue()!=null)
System.out.println(SomeObject.getValue());

答案 2 :(得分:0)

您可以在catch

中添加另一个try块
try {
    doSomething();
} catch (IOException) {
         try {
                  doSomething();
         } catch (IOException e) {
                 throw new ApplicationException("Failed twice at doSomething" +
                 e.toString());
         }          
} catch (Exception e) {
}