报告不声明 throws CloneNotSupportedExceptionclone() 方法。

如果没有声明 throws CloneNotSupportedException,该方法的子类将不能以标准方式禁止克隆。 此检查不会报告声明为 finalclone() 方法和 final 类内的 clone() 方法。

配置检查:

使用仅对 'protected' 克隆方法发出警告选项可以指示此检查仅对 protected clone() 方法发出警告。 Effective Java 一书(第二版和第三版)建议在 public 方法上省略 CloneNotSupportedException 声明,因为不抛出已检查的异常的方法更容易使用。

示例:


  public class Example implements Cloneable {
    // 方法未声明 ’throws CloneNotSupportedException‘
    protected Object clone() {
        try {
            return super.clone();
        } catch (CloneNotSupportedException e) {
            return null;
        }
    }
  }