服务端命令的核心处理函数为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 设置为异常信息并生成日志。