/*
 * 版权所有 (c) 2010-2011，MiCode 开源社区 (www.micode.net)
 * 根据 Apache 许可证 2.0 版本（"许可证"）授权；
 * 除非符合许可证的规定，否则不得使用本文件。
 * 您可以从以下网址获取许可证副本：
 * http://www.apache.org/licenses/LICENSE-2.0
 * 除非适用法律要求或书面同意，本软件按"原样"分发，
 * 没有任何明示或暗示的保证或条件。
 * 详见许可证中规定的权限和限制。
 * （注：这是一份标准的Apache许可证2.0版本的开源声明）
 */
// 声明当前类所在的包路径，属于Google任务模块的异常处理包
package net.micode.notes.gtask.exception;
// 导入Java序列化相关注解
import java.io.Serial;
/**
 * 自定义受检异常(checked exception)，表示网络操作失败
 * 继承自java.lang.Exception ，调用方必须显式捕获或抛出
 * 主要在网络请求失败、连接超时等场景使用
 */
public class NetworkFailureException extends Exception {
    // 序列化版本唯一标识符，使用@Serial注解标记
    // 该值用于控制不同版本间的序列化兼容性
    @Serial
    private static final long serialVersionUID = 2107610287180234136L;
    /**
     * 默认构造函数，创建无详细错误信息的异常对象
     * 用于不需要额外错误信息的简单场景
     */
    public NetworkFailureException() {
        super();  // 调用父类Exception的无参构造方法
    }
    /**
     * 带错误描述的构造函数
     * @param paramString 错误详细信息，会显示在异常堆栈中
     *                     示例："HTTP 404 Not Found"
     */
    public NetworkFailureException(String paramString) {
        super(paramString);  // 调用父类带错误信息的构造方法
    }
    /**
     * 完整参数构造函数
     * @param paramString 自定义错误描述信息
     * @param paramThrowable 引起当前异常的根原因(Throwable对象)
     *                       示例：new NetworkFailureException("请求失败", socketTimeoutEx)
     */
    public NetworkFailureException(String paramString, Throwable paramThrowable) {
        super(paramString, paramThrowable);  // 调用父类带cause的构造方法
    }
}