AT有仿真运算功能,但是,当仿真指令中有除零运算时,由于直接执行了这段二进制代码,会导致崩溃。那么,如何处理这样的问题?如何捕获并正确报出异常呢?这里记录一下相关知识。
首先给出一种消除该问题的方法:
在入口函数IECTask(void)中,可能出现的子函数IecCycle()调用之前,添加代码:
其中,__try用来捕捉在IecCycle中可能出现的异常,各种异常定义的宏在except.h中。__except通过系统获取错误码的API GetExceptionCode提出错误信息,并设置程序是否继续运行。
另外,还有try-catch,及C语言中对应的错误处理方法,这里先不列出,后面补充