using Yh.Platform.Abstractions; namespace YhCore.Common.Exceptions { /// int 错误码 → 新框架 映射(对齐 Java ErrorCode 常量值)。 /// /// 用途:业务直接抛 时,把数值错误码转成 IErrorCode: /// throw new DException(ErrorCodeUtil.From(5001), "库存不足"); /// public static class ErrorCodeUtil { public const int Default = 1; /// 按数值映射平台已知错误码;未知码保留原值(避免业务自定义错误码被吞成 Error=1)。 public static IErrorCode From(int code) => code switch { 0 => ErrorCode.Success, 2 => ErrorCode.ParamError, 3 => ErrorCode.Forbidden, 4 => ErrorCode.Unauthorized, 5 => ErrorCode.Custom, 6 => ErrorCode.InternalServerError, 405 => ErrorCode.HttpMethodNotAllowed, _ => new RawErrorCode(code, ""), }; /// 未知码透传实现:保留调用方原始 code,msg 由业务消息承载。 private sealed record RawErrorCode(int Code, string Msg) : IErrorCode; } }