子类抛出UnsupportedOperationException与忽略输入参数

问题描述 投票:0回答:1

假设我有一个如下所示的类,如该类的名称所示,该类不允许自动提交。

所以我的问题是,如果最好像下面那样保留它(空的正文,也许添加一些日志记录@ WARN / ERROR级别)或抛出UnsupportedOperationException?

public class NoAutoCommitConnection implements java.sql.Connection {
    public void setAutoCommit(boolean autoCommit) throws SQLException {
    }
}
java inheritance jdbc subclass liskov-substitution-principle
1个回答
1
投票

我实际上会使用if(autoCommit) { throw new UnsupportedOperationException(); },因为它清楚地表明不支持自动提交,但不会使setAutoCommit(false)调用失败。

未实现该方法,或者它的意图破坏了接口的约定。

我认为在这种情况下,您至少可以做的是在运行时引发异常。

© www.soinside.com 2019 - 2024. All rights reserved.