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();
}
}