> For the complete documentation index, see [llms.txt](https://docs.facephi.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.facephi.com/sdks/sdk-web/componentes/selphid-documentos/eventos/exceptioncaptured.md).

# exceptionCaptured

## Detalles

Se emite ante errores o situaciones inesperadas durante la captura.

**Evento:** `exceptionCaptured`

**Tipo:** `FacephiSelphidWidgetCustomEvent<ExceptionCapturedEvent>` | `CustomEvent<ExceptionCapturedEvent>`

### Sintaxis

```typescript
selphid.addEventListener('exceptionCaptured', onExceptionCaptured);
```

### Objeto recibido

El payload útil es de tipo `SelphidExceptionCapturedDetail` y está en `event.detail.detail`:

* `eventType` (`string`): Tipo de evento emitido.
* `exceptionType` (`string`): Tipo de excepción (`ExceptionType`).
* `message` (`string`): Descripción breve del error.
* `code` (`string`): Código de error asociado a `exceptionType`.

**Valores `exceptionType` — terminales**:

| Valor                         | Descripción                                             |
| ----------------------------- | ------------------------------------------------------- |
| `AndroidWebViewBehaviour`     | El widget no puede ejecutarse en el WebView de Android. |
| `BrowserApiNotCompatible`     | El navegador no es compatible.                          |
| `CameraHardwareError`         | Error al acceder a la cámara.                           |
| `PermissionsDenied`           | Permisos requeridos no concedidos.                      |
| `CameraPermissionDenied`      | Permiso de cámara denegado.                             |
| `MicrophonePermissionDenied`  | Permiso de micrófono denegado.                          |
| `SettingsError`               | Propiedad de configuración con formato incorrecto.      |
| `UnknownInternalError`        | Error interno desconocido.                              |
| `ExternalCameraChangeTimeout` | Timeout al cambiar cámara externa.                      |

**Valores `exceptionType` — extracción**:

| Valor          | Descripción                                       |
| -------------- | ------------------------------------------------- |
| `ErrorTimeout` | Se ha superado el límite de tiempo de extracción. |

**Valores `code`**:

| `exceptionType`              | Código    |
| ---------------------------- | --------- |
| `AndroidWebViewBehaviour`    | `SPD_318` |
| `UnknownInternalError`       | `SPD_329` |
| `CameraHardwareError`        | `SPD_305` |
| `PermissionsDenied`          | `SPD_332` |
| `CameraPermissionDenied`     | `SPD_301` |
| `MicrophonePermissionDenied` | `SPD_319` |
| `SettingsError`              | `SPD_320` |
| `BrowserApiNotCompatible`    | `SPD_321` |
| `ErrorTimeout`               | `SPD_001` |

## Descripción

Permite filtrar y reaccionar a los distintos tipos de error durante la captura del documento.

### Consideraciones

El payload útil está en `event.detail.detail` (ver [formato de eventos](/sdks/sdk-web/componentes/selphid-documentos/eventos.md#formato-de-los-eventos)). Las excepciones terminales muestran una vista de error y cierran el widget tras [errorTimer](/sdks/sdk-web/componentes/selphid-documentos/propiedades/errortimer.md).

Los códigos SPD están alineados con la tabla de [resultados](/sdks/sdk-web/componentes/selphid-documentos/resultados.md#codigos-de-error). Para `ExternalCameraChangeTimeout`, consulta el valor emitido en `code`.

***

## Ejemplo

```jsx
<facephi-selphid-widget
    onExceptionCaptured={(event) => {
      const { exceptionType, message, code } = event.detail.detail;
      console.error(code, exceptionType, message);
    }}
/>
```

```typescript
import { type SelphidExceptionCapturedDetail } from '@facephi/sdk-web-wc';

selphid.addEventListener('exceptionCaptured', (event) => {
  const detail: SelphidExceptionCapturedDetail = event.detail.detail;
});
```
