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 記憶體不足,因此失敗。 使用者空間無法妥善處理這項 (不太可能發生的) 錯誤。 這個錯誤不會出現在日後的版本中。

另請參閱