当方法抛出异常时,Netbeans不强迫我尝试catch

时间:2014-09-09 18:42:45

标签: java exception netbeans exception-handling try-catch

我正在使用Netbeans 8 IDE而我刚刚遇到这种奇怪的情况。我们假设我在throwsException的课程中使用了一种方法,当我调用该方法时Netbeans不会强制执行try catch。有时可能会发生Exception而且它不会被捕获。

为什么Netbeans不执行try catch方法?

以下是一个例子:

public class MyMethodClass {

    public MyMethodClass() {}

    public void someMethod() throws NullPointerException {
        // do something

        if(something == null) {
            throw new NullPointerException();
        }

        // do something else
    }
}


public class MyClass {

    public MyClass() {
        MyMethodClass mmc = new MyMethodClass();

        // Here Netbeans does not force me to use a try catch, why?
        mmc.someMethod(); 
    }
}

3 个答案:

答案 0 :(得分:3)

NullPointerException是一个未经检查的异常(因为它是RuntimeException的子类)。您不必捕获要编译的代码的未经检查的异常。

  

RuntimeException及其子类是未经检查的异常。未经检查的异常不需要在方法或构造函数的throws子句中声明,如果它们可以通过执行方法或构造函数抛出并在方法或构造函数边界外传播

答案 1 :(得分:2)

因为NullPointerException是未经检查的例外。

答案 2 :(得分:2)

NullPointerException是一个未经检查的异常,这意味着您并不总是需要捕获它。未经检查的例外是那些扩展RuntimeExceptionError的例外情况。这些的主要目的是通常没有恢复的情况;声明未经检查的异常也不需要方法。这完全有效:

public void throwNPE() {
    throw new NullPointerException();
}

Here是Oracle关于已检查与未检查异常的陈述之一。