Baseline Widely available
Los datos de la propiedad cause
de una instancia de Error
indica la causa original del error especÃfico.
Se utiliza cuando se captura y se relanza un error con un mensaje de error más especÃfico ó útil para seguir teniendo acceso al error original.
ValorEl valor que se pasó al constructor del Error()
en el argumento options.cause
. Puede no estar presente.
El valor de cause
puede ser de cualquiér tipo. No debe suponer que el error que capturó tiene un Error
como su cause
, de la misma manera que no puede estar seguro que la variable enlazada en la instrucción catch
sea un error tampoco. El siguiente ejemplo "Proporcionar datos estructurados como la causa del error" muestra un caso donde se proporciona deliberadamente un error como causa.
A veces es útil para detectar un error y volver a lanzarlo con un nuevo mensaje. En este caso deberÃa pasar el error original al constructor para el nuevo Error
, como se muestra.
try {
connectToDatabase();
} catch (err) {
throw new Error("Falló la conexión a la base de datos.", { cause: err });
}
Para un ejemplo mas detallado vea Error > Diferenciar entre errores similares.
Proporcionar datos estructurados como la causa del errorLos mensajes de error escritos para consumo humano pueden ser inapropiados para el análisis de la máquina â dado que están sujetos a cambios de redacción o puntuación que pueden romper cualquier análisis existente escrito para consumirlos. Asà que, cuando lanza un error de una función, como una alternativa a un mensaje de error legible por humanos, puede proporcionar la causa como datos estructurados, para el análisis de la máquina.
function makeRSA(p, q) {
if (!Number.isInteger(p) || !Number.isInteger(q)) {
throw new Error(
"La generación de claves RSA requiere entradas de tipo entero.",
{
cause: { code: "NonInteger", values: [p, q] },
},
);
}
if (!areCoprime(p, q)) {
throw new Error(
"La generación de claves RSA requiere dos enteros coprimos.",
{
cause: { code: "NonCoprime", values: [p, q] },
},
);
}
// algoritmo rsa...
}
Especificaciones Compatibilidad con navegadores Véase también
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4