使用投掷时我应该使用投掷吗?

Vik*_*ram 3 java nullpointerexception

我的方法有一个抛出的返回类型NullPointerException.

public class Student {
    public String studentOne() {    
        //code to get name
        if(name == null)
            throw new NullPointerException("Error");
        else
            return name; 
    }
}
Run Code Online (Sandbox Code Playgroud)

我的问题是..我应该public String studentOne throws NullPointerException在抛出新的异常时使用吗?

PS:我知道这不是最好的实践nullPointerException.但它在我的项目中是必需的

Roh*_*ain 6

NullPointerException是一个未经检查的异常,因此您不需要也不应该将其声明为抛出.对于任何未经检查的异常,您无需执行此操作.当然,如果你声明它们,它们总是会被编译器忽略.

至于抛出一个NPE,抛出它就好了,当你不能继续使用该方法的时候null.但是,无论是显式抛出它还是在引发它时都会隐式抛出它都没有任何区别.只是您可以在显式抛出时传递自定义消息.

当然,您可以在方法中记录此行为NPE,在某些情况下它会抛出,以便让用户知道这一点.

  • 话虽如此,在javadoc中记录哪些情况会导致NPE被抛出绝对没有坏处. (3认同)