没有IOException的StringBuilder.append(CharSequence)?

时间:2019-08-01 15:32:56

标签: java exception stringbuilder

我注意到StringBuilder间接实现了Appendable

Appendable.append(CharSequence)引发已检查的异常IOException。那么AbstractStringBuilder.append(CharSequence)会如何不声明IOException而摆脱困境?因此,当我附加到IOException时,又不用担心StringBuilder怎么办?

这是仅适用于已为Appendable改装的现有类的奇怪例外吗?还是我忘记了部分基本Java规则?

2 个答案:

答案 0 :(得分:0)

实现接口时,您可能不会引发异常,因此可以执行以下操作:

new Appendable() {

    @Override
    public Appendable append(CharSequence charSequence) {
        return null;
    }

    @Override
    public Appendable append(CharSequence charSequence, int i, int i1) {
        return null;
    }

    @Override
    public Appendable append(char c) {
        return null;
    }
}

答案 1 :(得分:0)

在实现接口或扩展抽象类时, 您可以决定是否引发异常。

无论重写方法是否引发异常,覆盖方法都可以引发任何未经检查的异常。但是,重载方法不应抛出比被重载方法声明的异常新的或更广泛的检查异常。