XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEExtension

【DLL】XFE各类拓展是一个C#的DLL库,旨在优化C#代码中常用语句的使用,并提供更简洁的访问方式,同时提供Xunit测试框架,快速搭建服务器/客户端,免费ChatGPTAPI接口,免费通讯服务器,XFE下载器,新增格式等

公开
关注 0 Fork 0 Star 0
UTF-8
namespace XFEExtension.NetCore.Exceptions;

/// <summary>
/// 流程控制:停止并执行方法
/// </summary>
public class StopAction : Exception
{
    /// <summary>
    /// 执行方法并抛出异常
    /// </summary>
    /// <param name="stopAction">需要执行的方法</param>
    /// <param name="message">异常消息</param>
    public StopAction(Action stopAction, string? message = null) : base(message) => stopAction.Invoke();

    /// <summary>
    /// 执行方法并抛出异常
    /// </summary>
    /// <param name="stopAction">需要执行的方法</param>
    /// <param name="message">异常消息</param>
    /// <param name="innerException">内部错误</param>
    public StopAction(Action stopAction, string? message, Exception? innerException) : base(message, innerException) => stopAction.Invoke();

    /// <summary>
    /// 执行异步方法并抛出异常
    /// </summary>
    /// <param name="stopAction">需要执行的方法</param>
    /// <param name="message">异常消息</param>
    public StopAction(Func<Task> stopAction, string? message = null) : base(message) => stopAction.Invoke().Wait();

    /// <summary>
    /// 执行异步方法并抛出异常
    /// </summary>
    /// <param name="stopAction">需要执行的方法</param>
    /// <param name="message">异常消息</param>
    /// <param name="innerException">内部错误</param>
    public StopAction(Func<Task> stopAction, string? message, Exception? innerException) : base(message, innerException) => stopAction.Invoke().Wait();
}