跳到主要内容

错误码

失败时取本线程 darra_last_error,再抛对应子类。Message 格式为 [码] 描述 | 建议: hintHint 原文透传,不改写,可原样展示给最终用户。

错误码用枚举 AiErrorCode,与 darra_error_code 逐码对应。每个非 0 码一个异常子类;未知新码兜底为 AiException 基类,Code 原样保留。

提示

完整 hint 文案见 错误码。公开 runtime 物理上没有加密 / 签发符号。

捕获

try
{
using var session = AiSession.Open("model.darmodel", keyPath: "model.darmkey");
}
catch (AiException ex)
{
Console.Error.WriteLine(ex.Message);
Console.Error.WriteLine(ex.Hint);
if (ex.Code is int c)
Console.Error.WriteLine((AiErrorCode)c);
}

优先 catch 子类(AiProviderMissingException 等);需要按码分支时把 Code 转成 AiErrorCode。绑定侧加载 / ABI / authoring 缺符号时 Codenull,没有对应 darra_error_code

基类属性

类别属性类型访问说明
AiExceptionCodeint?只读darra_error_code 整数值;绑定侧加载 / ABI / authoring 缺符号为 null
Hintstring只读修复建议(error-catalog 标准文案,可为空串)

AiErrorCode

名称说明
0Ok成功,不抛异常
1IoNotFound文件不存在(容器 / 授权 / 图片 / 离线包路径错)
2IoDenied文件存在但读 / 写被拒
3BadContainer.darmodel 损坏 / 非 DARM1 / 被截断篡改
4BadLicense.darmkey 损坏或与容器不配对
5PasswordRequired该容器需要密码但调用方没给
6PasswordWrong密码错误
7MachineMismatch绑机授权在非目标机器上使用
8TrialExhausted试用计次已用完
9UnsupportedPayload载荷类型在当前平台 / Provider 下不支持(含 Windows 上的 rknn、.pt / .pth)
10UnsupportedPlatform整个 OS / 架构不在支持矩阵(含 Windows 上指名 edge-rknn)
11ProviderMissing需要的运行时 Provider 包未安装
12ProviderAbiMismatchProvider 包与内核 ABI 不匹配
13HardwareMissing未探测到所需硬件
14DriverTooOld驱动版本低于 Provider 包要求(SDK 不代装)
15NetworkFailed清单 / 运行时包下载失败
16ChecksumMismatch下载包或离线包 sha256 校验不过
17Cancelled操作被取消(AiRuntime.Cancel)
18InternalSDK 内部错误;也用于调用方参数契约违反
public enum AiErrorCode
{
Ok = 0,
IoNotFound = 1,
IoDenied = 2,
BadContainer = 3,
BadLicense = 4,
PasswordRequired = 5,
PasswordWrong = 6,
MachineMismatch = 7,
TrialExhausted = 8,
UnsupportedPayload = 9,
UnsupportedPlatform = 10,
ProviderMissing = 11,
ProviderAbiMismatch = 12,
HardwareMissing = 13,
DriverTooOld = 14,
NetworkFailed = 15,
ChecksumMismatch = 16,
Cancelled = 17,
Internal = 18,
}

异常子类

类别属性类型访问说明
绑定侧(Code = null)AiLoadExceptionAiException抛出native 内核加载失败或 ABI 不匹配。Code 恒为 null
AiAuthoringUnavailableExceptionAiException抛出runtime 构建没有 authoring 符号。文案固定:当前 SDK 为 runtime 构建,不含加密/签发能力
IO / 容器AiIoNotFoundExceptionAiException抛出IoNotFound (1):文件不存在(容器 / 授权 / 图片 / 离线包路径错)
AiIoDeniedExceptionAiException抛出IoDenied (2):文件存在但读 / 写被拒
AiBadContainerExceptionAiException抛出BadContainer (3):.darmodel 损坏 / 非 DARM1 / 被截断篡改
授权(消费已签发容器)AiBadLicenseExceptionAiException抛出BadLicense (4):.darmkey 损坏或与容器不配对
AiPasswordRequiredExceptionAiException抛出PasswordRequired (5):该容器需要密码但调用方没给
AiPasswordWrongExceptionAiException抛出PasswordWrong (6):密码错误
AiMachineMismatchExceptionAiException抛出MachineMismatch (7):绑机授权在非目标机器上使用
AiTrialExhaustedExceptionAiException抛出TrialExhausted (8):试用计次已用完
平台 / ProviderAiUnsupportedPayloadExceptionAiException抛出UnsupportedPayload (9):载荷类型在当前平台 / Provider 下不支持(含 Windows 上的 rknn、.pt / .pth)
AiUnsupportedPlatformExceptionAiException抛出UnsupportedPlatform (10):整个 OS / 架构不在支持矩阵(含 Windows 上指名 edge-rknn)
AiProviderMissingExceptionAiException抛出ProviderMissing (11):需要的运行时 Provider 包未安装
AiProviderAbiMismatchExceptionAiException抛出ProviderAbiMismatch (12):Provider 包与内核 ABI 不匹配
AiHardwareMissingExceptionAiException抛出HardwareMissing (13):未探测到所需硬件
AiDriverTooOldExceptionAiException抛出DriverTooOld (14):驱动版本低于 Provider 包要求(SDK 不代装)
安装 / 内部AiNetworkFailedExceptionAiException抛出NetworkFailed (15):清单 / 运行时包下载失败
AiChecksumMismatchExceptionAiException抛出ChecksumMismatch (16):下载包或离线包 sha256 校验不过
AiCancelledExceptionAiException抛出Cancelled (17):操作被取消(AiRuntime.Cancel)
AiInternalExceptionAiException抛出Internal (18):SDK 内部错误;也用于调用方参数契约违反

AiException

public class AiException : Exception
{
public int? Code { get; }
public string Hint { get; }
}

全部 Darra AI SDK 错误的基类。Hint 来自线程局部错误槽,可原样展示给最终用户。

AiLoadException

public sealed class AiLoadException : AiException

native 内核加载失败或 ABI 不匹配。Code 恒为 null

AiAuthoringUnavailableException

public sealed class AiAuthoringUnavailableException : AiException

runtime 构建没有 authoring 符号。文案固定:「当前 SDK 为 runtime 构建,不含加密/签发能力」。公开 runtime 物理上没有 darra_encrypt_ / darra_issue_ / darra_fingerprint_perturb 符号。