3

我的方法有一个 throws 的返回类型NullPointerException

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

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

PS:我知道扔不是最好的做法nullPointerException。但它在我的项目中是必需的

4

2 回答 2

6

NullPointerException未经检查的异常,因此您不需要也不应该将其声明为已抛出。您不需要对任何未经检查的异常执行此操作。当然,如果您声明它们,编译器无论如何都会忽略它们。

至于扔 a NPE,扔就好了,如果值是null. 但是,无论是显式抛出它,还是在引发它时隐式抛出它都没有任何区别。只是您可以在明确抛出时传递自定义消息。

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

于 2013-10-24T18:17:48.197 回答
1

更好的解决方案是向方法添加文档

/**
 * @param  name - not null. NullPointerExcpetion will thrown in case of null
 *
 * @return some string
 */  
public String studentOne(String name)
{
   // ...
}      

之间没有区别

 public String studentOne(String name)  

 public String studentOne(String name) throw NullPointerException

因为NullPointerException是未经检查的异常

于 2013-10-24T18:22:10.360 回答