Возможный дубликат:
Когда выбрать отмеченные и непроверенные исключения
Когда мне нужно создать проверенное исключение и когда я должен сделать исключение во время выполнения?
Например, предположим, что я создал следующий класс:
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();
        /* ... */
    }
}
Как мне создать NotEnoughBalanceException? Должно ли оно расширяться Exception или RuntimeException? Или я должен просто использовать IllegalArgumentException вместо этого?
