跳转至

Exceptions 异常

.NET SDK 将所有底层错误码(ErrorCode)转换为强类型异常,通过 ExceptionResolver 在 P/Invoke 边界自动完成映射。

异常层次

OneException(根)
├── ControllerException
├── MotionException
├── ParameterException
├── TaskException
├── DataCollectionException
├── CommunicationException
│   └── LostCommunicationException
├── CallbacksException
├── FileIOException
│   ├── FileAccessFailureException
│   └── InvalidFileFormatException
├── CoreLibraryException
├── FirmwareLoaderException
├── ProgramException
├── QueueBufferFullException
├── InvalidParameterValueException
├── UserDefinedException
└── OneScriptException

OneException

根异常类型,所有控制器相关异常的基类。

属性 类型 说明
ErrorCode ErrorData 原始错误码和位置信息
Controller Controller 关联的控制器实例(可能为 null
Criticality Criticality 严重等级
HelpKey string 关联的错误帮助页面键名

HelpLink 自动指向 Errors\<ErrorCode>.html

异常类型说明

类型 说明
ControllerException 控制器系统级错误(初始化、重置等)
MotionException 运动指令执行错误(无效轴、运动冲突等)
ParameterException 参数访问或设置错误
TaskException 任务操作错误(任务不存在、任务冲突等)
DataCollectionException 数据采集配置或执行错误
CommunicationException 通信错误(连接断开、超时等)
LostCommunicationException 与控制器通信完全丢失
CallbacksException 回调执行异常
FileIOException 文件 I/O 错误
FileAccessFailureException 文件访问失败
InvalidFileFormatException 文件格式无效
CoreLibraryException 底层 C 库异常
FirmwareLoaderException 固件加载错误
ProgramException OneScript 程序执行错误
QueueBufferFullException 队列缓冲区满
InvalidParameterValueException 参数值超出有效范围
UserDefinedException 用户自定义错误
OneScriptException OneScript 脚本执行错误

捕获模式

推荐在应用顶层统一捕获 OneException

try
{
    controller = Controller.Connect();
    controller.Commands.Motion.MoveAbs("X", 10.0, 10.0);
}
catch (OneException ex)
{
    Console.WriteLine($"控制器错误 [{ex.ErrorCode.Code}]: {ex.Message}");
    Console.WriteLine($"帮助文档: {ex.HelpLink}");
}
finally
{
    if (controller != null)
    {
        try { controller.Commands.Axes["X"].Motion.Disable(); } catch {}
        Controller.Disconnect();
    }
}

相关页面