TVM Runtime base#
源码见:tvm/src/runtime/runtime_base.h
这段代码是 C++ 头文件,它定义了一些宏和函数,用于处理 TVM 运行时 API 的异常情况。
首先,该头文件包含了一些必要的头文件:
<tvm/runtime/c_runtime_api.h>
:包含 TVM C API 的声明。<stdexcept>
:包含标准异常类的定义。
接下来,定义了两个宏:
API_BEGIN()
:用于标记函数开始执行的位置。在函数体中,使用try
块来捕获可能抛出的异常。API_END()
:用于标记函数结束执行的位置。在函数体中,使用catch
块来捕获特定的异常类型,并返回相应的错误码。如果没有捕获到任何异常,则返回0表示成功。
此外,还定义了宏 API_END_HANDLE_ERROR(Finalize)
,用于处理异常并在发生错误时执行清理操作。与 API_END()
类似,它也使用 try
和 catch
块来捕获异常,但在捕获到异常后,会先执行传入的 Finalize
参数所表示的清理操作,然后再调用 TVMAPIHandleException()
函数处理异常并返回相应的错误码。
最后,定义了函数 TVMAPIHandleException()
,用于处理异常。它接受 std::exception
类型的参数,并返回整数值,表示 API 执行后的返回值。