/*
 * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
 *
 * 遵循 Apache 许可证 2.0 版（"许可证"）；
 * 除非遵守许可证，否则不得使用此文件。
 * 您可以在以下网址获取许可证副本：
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 * 除非适用法律要求或书面同意，否则根据许可证分发的软件是按"原样"提供的，
 * 不附带任何明示或暗示的保证或条件。请参阅许可证，了解管理权限和限制的具体语言。
 */

package net.micode.notes.gtask.exception;

/**
 * 操作失败异常类（运行时异常）
 * 用于标识业务操作执行失败的场景（如数据解析失败、同步操作失败等）
 */
public class ActionFailureException extends RuntimeException {
    private static final long serialVersionUID = 4425249765923293627L; // 序列化版本号，用于兼容反序列化

    /**
     * 无参构造函数
     * 创建一个默认的操作失败异常
     */
    public ActionFailureException() {
        super(); // 调用父类（RuntimeException）的无参构造
    }

    /**
     * 带错误消息的构造函数
     * @param paramString 异常消息，描述具体失败原因（如"生成任务列表 JSON 失败"）
     */
    public ActionFailureException(String paramString) {
        super(paramString); // 调用父类带消息的构造函数，便于日志记录和问题定位
    }

    /**
     * 带错误消息和根源异常的构造函数
     * @param paramString 异常消息，描述表面失败原因
     * @param paramThrowable 根源异常（导致当前异常的原始异常），如 JSON 解析异常
     * 用于保留完整的异常栈信息，方便排查底层问题
     */
    public ActionFailureException(String paramString, Throwable paramThrowable) {
        super(paramString, paramThrowable); // 调用父类带消息和 Throwable 的构造函数
    }
}