# zx_exception_get_process

## Summary

Create a handle for the exception's process.

## Declaration

    #include <zircon/syscalls.h>

    zx_status_t zx_exception_get_process(zx_handle_t handle, zx_handle_t* out);

## Description

The exception process is only available for job and process exception channels,
thread exceptions cannot access their parent process handles.

*handle* is the exception handle.

*out* will be filled with a new handle to the exception process. This handle
will have the same rights as the task given to
[`zx_task_create_exception_channel()`](https://fuchsia.dev/reference/syscalls/task_create_exception_channel).

## Rights

*handle* must be of type `ZX_OBJ_TYPE_EXCEPTION`.

## Return value

`zx_exception_get_process()` returns `ZX_OK` on success.
In the event of failure, a negative error value is returned.

## Errors

`ZX_ERR_ACCESS_DENIED` *handle* was received via a thread exception channel.

`ZX_ERR_BAD_HANDLE` *handle* is not a valid handle.

`ZX_ERR_NO_MEMORY` Failed to allocate memory for a new handle.

`ZX_ERR_WRONG_TYPE` *handle* is not an exception.

## See also

- [exceptions](https://fuchsia.dev/docs/concepts/kernel/exceptions)
- [`zx_exception_get_thread()`](https://fuchsia.dev/reference/syscalls/exception_get_thread)