可能重复:
何时选择已检查和未检查的异常
我应该何时创建一个已检查的异常,何时应该生成运行时异常?
例如,假设我创建了以下类:
public class Account {
private float balance;
/* ... constructor, getter, and other fields and methods */
public void transferTo(Account other, float amount) {
if (amount > balance)
throw new NotEnoughBalanceException();
/* ... */
}
}
Run Code Online (Sandbox Code Playgroud)
我应该如何创建我的NotEnoughBalanceException?它应该延伸Exception还是RuntimeException?或者我应该使用IllegalArgumentException?
我什么时候应该从中派生例外RuntimeException而不是Exception?
A RuntimeException不必在方法的throws子句中声明,这可能是好的,因为它不必特别列出或坏,因为显式声明方法的异常是一种好习惯.
思考?