3

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

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

这怎么可能处理。我也可以使用方法级别throws NullPointerException吗?

4

3 回答 3

3

它确实会进入 catch 块内。该行还有另一个潜在的 NullPointerException (假设您想说)

so.setValue(); 

话虽如此,不建议抛出 RuntimeException。最好不要通过 try/catch 而是通过简单的条件检查在代码中处理 NullPointerException

于 2011-12-23T06:48:43.680 回答
0

您可以在 catch 中放置另一个 try 块

try {
    doSomething();
} catch (IOException) {
         try {
                  doSomething();
         } catch (IOException e) {
                 throw new ApplicationException("Failed twice at doSomething" +
                 e.toString());
         }          
} catch (Exception e) {
}
于 2011-12-23T07:10:30.493 回答
0

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

if(SomeObject.getValue()!=null)
System.out.println(SomeObject.getValue());
于 2011-12-23T06:56:32.590 回答