实用程序错误#
- group utility_error
定义
-
CUDF_EXPECTS(...)#
用于检查(预)条件的宏,当条件被违反时抛出异常。
默认情况下会抛出
cudf::logic_error,但也可以指定自定义异常。示例用法:
// throws cudf::logic_error CUDF_EXPECTS(p != nullptr, "Unexpected null pointer"); // throws std::runtime_error CUDF_EXPECTS(p != nullptr, "Unexpected nullptr", std::runtime_error);
- Parameters:
... – 这个宏接受两个或三个参数:
第一个参数必须是一个计算结果为真或假的表达式,这是被检查的条件。
第二个参数是一个字符串字面量,用于构造异常的
what。当提供时,第三个参数是要抛出的异常。如果未指定,则默认为
cudf::logic_error。
- Throws <tt>_exception_type</tt>:
如果条件评估为0(假)。
-
CUDF_FAIL(...)#
表示已经采取了错误的代码路径。
示例用法:
{c++} // Throws `cudf::logic_error` CUDF_FAIL("Unsupported code path"); // Throws `std::runtime_error` CUDF_FAIL("Unsupported code path", std::runtime_error);- Parameters:
... – 这个宏接受一个或两个参数:
第一个参数是一个字符串字面量,用于构造异常的
what。当提供时,第二个参数是要抛出的异常。如果未指定,则默认为
cudf::logic_error。
- Throws <tt>_exception_type</tt>:
如果条件评估为0(假)。
-
CUDF_CUDA_TRY(call)#
用于CUDA运行时API函数的错误检查宏。
调用一个CUDA运行时API函数,如果调用没有返回cudaSuccess,则调用cudaGetLastError()清除错误并抛出异常,详细说明发生的CUDA错误。
-
CUDF_CHECK_CUDA(stream)#
调试宏以检查CUDA错误。
在非发布版本中,此宏将在错误检查之前同步指定的流。在发布和非发布版本中,此宏都会检查之前调用中是否有任何挂起的CUDA错误。如果报告了错误,将抛出一个异常,详细说明发生的CUDA错误。
此宏的目的是为调试异步CUDA执行提供一种同步和确定性执行的机制。它应在任何异步CUDA调用(例如cudaMemcpyAsync)或异步内核启动之后使用。
-
struct stacktrace_recorder#
- #include <error.hpp>
用于在构造时存储当前堆栈跟踪的结构体。
由 cudf::cuda_error, cudf::data_type_error, cudf::logic_error 子类化
公共函数
-
inline char const *stacktrace() const#
获取在对象构造期间捕获的存储堆栈跟踪。
- Returns:
指向存储输出堆栈跟踪的以空字符结尾的字符串的指针
-
inline char const *stacktrace() const#
-
struct logic_error : public std::logic_error, public cudf::stacktrace_recorder#
- #include <error.hpp>
当违反逻辑前提条件时抛出的异常。
此异常不应直接抛出,而是由CUDF_EXPECTS宏抛出。
公共函数
-
inline logic_error(char const *const message)#
使用错误消息构造一个logic_error。
- Parameters:
message – 与异常关联的消息
-
inline logic_error(std::string const &message)#
使用错误消息构造一个新的逻辑错误对象。
- Parameters:
message – 与异常关联的消息
-
inline logic_error(char const *const message)#
-
struct cuda_error : public std::runtime_error, public cudf::stacktrace_recorder#
- #include <error.hpp>
当遇到CUDA错误时抛出的异常。
由 cudf::fatal_cuda_error 子类化
-
struct fatal_cuda_error : public cudf::cuda_error#
公共函数
-
inline cuda_error(std::string const &message, cudaError_t const &error)#
使用错误消息和代码构造一个新的cuda错误对象。
- Parameters:
message – 错误信息
error – CUDA 错误代码
-
inline cuda_error(std::string const &message, cudaError_t const &error)#
-
struct data_type_error : public std::invalid_argument, public cudf::stacktrace_recorder#
- #include <error.hpp>
当尝试在不支持的数据类型上执行操作时抛出的异常。
当尝试对不支持的data_type进行操作时,应抛出此异常。此异常不应直接抛出,而是由CUDF_EXPECTS或CUDF_FAIL宏抛出。
公共函数
-
inline data_type_error(char const *const message)#
构造一个带有错误消息的data_type_error。
- Parameters:
message – 与异常关联的消息
-
inline data_type_error(std::string const &message)#
构造一个新的data_type_error对象,并带有错误信息。
- Parameters:
message – 与异常关联的消息
-
inline data_type_error(char const *const message)#
-
CUDF_EXPECTS(...)#