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 optionsZX_EXCEPTION_TARGET_JOB_DEBUGGER 以外的值,typeZX_EXCP_USER 以外的值,或者 context 是无效指针。

ZX_ERR_NO_MEMORY 因内存不足而失败。 用户空间没有什么方法来处理此(不太可能)错误。在以后的 build 中,此错误不会再发生。

另请参阅