如何创建Exception与预制类型不同的新特性?
public class InvalidBankFeeAmountException extends Exception{
public InvalidBankFeeAmountException(String message){
super(message);
}
}
Run Code Online (Sandbox Code Playgroud)
它将显示在第一行中写入的InvalidBankFeeAmountException的警告.
jjn*_*guy 111
您需要做的就是创建一个新的class并拥有它extend Exception.
如果你想要一个Exception未经检查的,你需要extend RuntimeException.
注意:checked Exception是一个要求您Exception在try/ catchblock中包围或throws在方法声明中有一个' '子句的.(例如IOException)Unchecked Exceptions可能会像checked一样被抛出Exceptions,但您不需要以任何方式显式处理它们(IndexOutOfBoundsException).
例如:
public class MyNewException extends RuntimeException {
public MyNewException(){
super();
}
public MyNewException(String message){
super(message);
}
}
Run Code Online (Sandbox Code Playgroud)
请确保不要过度使用异常,特别是检查异常.我建议阅读Joshua Bloch的Effective Java第9章,特别是他的第60项(赞成使用标准例外).他的建议还包括对可以从中恢复的异常使用已检查的异常,使用未经检查的异常(RuntimeExceptions)进行编程错误,并避免不必要地使用已检查的异常.
如果在发现编程错误时抛出InvalidBankAccount异常,您可能只想抛出标准的未经检查的Java IllegalStateException.(这巧妙地避免了声明serialVersionUID的需要.)
| 归档时间: |
|
| 查看次数: |
52837 次 |
| 最近记录: |