我正在使用 IDE Netbeans7.3进行Java开发。有一些奇怪的事情我无法对自己解释,所以请帮助我理解。
我向班级宣布。第一个继承自Exception
:
public class MyParameterException extends Exception{
public MyParameterException(){
super();
}
public MyParameterException(String message){
super(message);
}
}
第二个继承自 NullPointerException:
public class NullMyParameterException extends NullPointerException{
public NullMyParameterException(){
super();
}
public NullMyParameterException(String message){
super(message);
}
}
现在,当我在一个类中创建一个方法并编写:
public void test(String s){
if(s==null) throw new NullMyParameterException("The input string is null.");
if(s.trim().isEmpty()) throw new MyParameterException("The input string is empty.");
}
对我来说奇怪的是,我unreported exception MyParameterException must be caught or declared to be thrown
从 IDE 收到了消息,但没有提到我可以在方法中抛出的第一个异常。
据我所知,该方法应声明如下:
public void test(String str) throws MyNullParameterException, MyParameterException
但对于 Netbeans 来说就足够了:
public void test(String str) throws MyParameterException
这是:
- 一个 IDE 错误。
- 正常,因为继承自的类
NullPointerException
是特殊的。 - ...
请让我理解。