[]
        
(Showing Draft Content)

异常处理

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

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

    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 设置为异常信息并生成日志。