zx_thread_raise_exception

摘要

引发用户生成的异常。

声明

#include <zircon/syscalls.h>

zx_status_t zx_thread_raise_exception(uint32_t options,
                                      zx_excp_type_t type,
                                      const zx_exception_context_t* context);

说明

zx_thread_raise_exception() 会引发用户生成的异常。例外情况 将传送到与当前线程关联的异常渠道。

目前,options 参数必须为 ZX_EXCEPTION_TARGET_JOB_DEBUGGER。 这会导致将异常传递到作业调试程序异常渠道。 将来,我们可能会扩充选项,以便定位到其他类型的 例外情况渠道。

type 参数必须是 ZX_EXCP_USER。以后,type 可以是 以引发其他类型的异常。

系统会忽略 zx_exception_context_t 中的 arch 字段。而应使用 synth_codesynth_data 字段来传达有关异常的信息。 系统会保留小于 ZX_EXCP_USER_CODE_USER0 的代码以供系统定义之用。 对于以下情况,应用可能会使用大于或等于 ZX_EXCP_USER_CODE_USER0 的代码: 各自的目的。

返回值

如果成功,zx_thread_raise_exception() 会返回 ZX_OK。 如果失败,则返回负的错误值。

错误

ZX_ERR_INVALID_ARGS options 不是一个值, ZX_EXCEPTION_TARGET_JOB_DEBUGGERtype 不是 ZX_EXCP_USERcontext 是无效的指针。

ZX_ERR_NO_MEMORY 因内存不足而失败。 用户空间没有好办法处理这种(不太可能)错误。 在将来的版本中,此错误不会再发生。

另请参阅