Skip to content

异常处理

服务端命令的核心处理函数为ExecuteAsync,默认的返回值为 ExecuteResult 类型

约定规定,返回 ExecuteResult.ErrCode值为 0 表示成功,非 0 为失败。如果 ErrorCode为非 0 时,如果存在多种错误情况,插件开发者可以自行定义ErrorCode,以方便调试。

csharp
    public class MyPluginServerCommand : Command, ICommandExecutableInServerSideAsync
    {
        public async Task<ExecuteResult> ExecuteAsync(IServerCommandExecuteContext dataContext)
        {
            if (CheckPermission())
            {
                return new ExecuteResult() { ErrCode = 1, Message = "权限不足" };
            }
            if (NotEnoughStorage())
            {
                return new ExecuteResult() { ErrCode = 2, Message = "库存不足" };
            }
            // 业务逻辑
            return new ExecuteResult();
        }

        public override CommandScope GetCommandScope()
        {
            return CommandScope.ExecutableInServer;
        }
    }

如果ExecuteAsync抛出未处理的异常,活字格会自动把 ExecuteResult.ErrCode 设置为 500, ExecuteResult.Message 设置为异常信息并生成日志。

更新: 2024-03-01 13:32:39
原文: https://www.yuque.com/robert-bh51n/ea8l6c/pe4dwydhi2g62ygu