validate() lanza errores tipados ante fallos HTTP o de red (un recurso inválido no lanza: se devuelve en result.errors). Todos extienden FhironError, así que puedes capturar cualquier fallo del SDK con un solo instanceof y luego distinguir el caso.
Jerarquía
| Clase | HTTP | Cuándo | Reintentable |
|---|---|---|---|
FhironAuthError | 401 / 403 | API key ausente, inválida o sin permisos. | No |
FhironQuotaError | 429 | Cuota mensual agotada. Expone .upgradeUrl. | No (sube de plan) |
FhironRequestError | 400 / 415 / 422 | Problema de forma del recurso o la petición. | No |
FhironServerError | 5xx | Servidor o motor de validación caído. | Sí |
FhironTimeoutError | n/a | La petición superó timeout. Expone .timeout. | Sí |
FhironNetworkError | n/a | Fallo de red, DNS, offline. | Sí |
.status (cuando hay respuesta HTTP) y .body (el cuerpo crudo del error).
Patrón de reintento
Los errores marcados como reintentables (FhironServerError, FhironTimeoutError, FhironNetworkError) admiten un backoff simple:
FhironAuthError, FhironRequestError ni FhironQuotaError: el resultado no cambiará sin corregir la key, el recurso o el plan.
Recurso inválido no es un error
Importante: que un recurso no cumpla CL Core no lanza una excepción. La llamada resuelve conresult.ok === false y los hallazgos en result.errors. Las excepciones son solo para fallos de transporte o autorización.