【问题标题】:Netbeans not forcing me to try catch when method throws an exception当方法抛出异常时,Netbeans 不会强迫我尝试捕获
【发布时间】:2014-09-09 18:42:44
【问题描述】:

我正在使用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(); 
    }
}

【问题讨论】:

  • RuntimeExceptions 不需要处理。

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


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      因为NullPointerException 是一个未经检查的异常。

      【讨论】:

        猜你喜欢
        • 2020-11-11
        • 1970-01-01
        • 2021-08-10
        • 2022-06-12
        • 2013-10-04
        • 2016-02-17
        • 1970-01-01
        • 2016-02-16
        • 2017-10-05
        相关资源
        最近更新 更多