/*
 * Copyright (c) 2010-2011, The MiCode Open Source Community (www.micode.net)
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *        http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package net.micode.notes.gtask.exception;

/**
 * ActionFailureException 类
 * 表示在执行Google Tasks同步操作时发生的动作失败异常
 * 
 * 继承自RuntimeException（运行时异常），属于非受检异常
 * 通常用于表示程序逻辑错误或同步操作失败，调用方不需要强制捕获
 * 
 * 应用场景：
 * 1. 创建、更新或删除Google Task时发生失败
 * 2. JSON数据生成或解析失败
 * 3. 数据库操作失败
 * 4. 其他同步相关的业务逻辑错误
 */
public class ActionFailureException extends RuntimeException {
    /**
     * 序列化版本UID
     * 用于保持类的版本兼容性，在序列化和反序列化过程中验证类的版本一致性
     */
    private static final long serialVersionUID = 4425249765923293627L;

    /**
     * 默认构造函数
     * 创建一个不包含详细错误信息的ActionFailureException
     */
    public ActionFailureException() {
        super(); // 调用父类RuntimeException的无参构造函数
    }

    /**
     * 带错误消息的构造函数
     * 创建一个包含指定错误消息的ActionFailureException
     * 
     * @param paramString 错误描述信息，用于说明异常发生的原因
     */
    public ActionFailureException(String paramString) {
        super(paramString); // 调用父类RuntimeException的带消息构造函数
    }

    /**
     * 带错误消息和原因的构造函数
     * 创建一个包含指定错误消息和根本原因的ActionFailureException
     * 通常用于异常链，将底层异常包装为更高级别的异常
     * 
     * @param paramString 错误描述信息，用于说明异常发生的原因
     * @param paramThrowable 导致此异常的根本原因（底层异常）
     */
    public ActionFailureException(String paramString, Throwable paramThrowable) {
        super(paramString, paramThrowable); // 调用父类RuntimeException的带消息和原因的构造函数
    }
}