Ce face Error.captureStackTrace
Error.captureStackTrace(obiect) pune pe obiect o proprietate stack, cu lista apelurilor din acel moment. Al doilea parametru, opțional, este o funcție: toate cadrele de la ea în sus sunt scoase din stivă, ca utilizatorul să vadă locul unde a greșit el, nu interiorul bibliotecii tale.
Funcția vine din motorul V8 și există în Node.js și în browserele bazate pe Chromium. Nu face parte din standard, deci verifică existența ei înainte de folosire în codul pentru browsere.
Parametri
| Parametru | Descriere |
|---|---|
obiect |
Obiectul care primește proprietatea stack. |
functiaDeAscuns |
Opțional. Cadrele de la această funcție în sus nu apar în stivă. |
Ce returnează
undefined.
Exemple
Exemplul 1: Stivă fără funcția ajutătoare
function valideaza(valoare) {
if (!valoare) {
const eroare = { name: "EroareValidare", message: "Valoare lipsă" };
Error.captureStackTrace(eroare, valideaza);
return eroare;
}
}
function salveaza() {
return valideaza("");
}
const e = salveaza();
console.log(e.stack.split("\n")[0]);
console.log(e.stack.includes("valideaza"), e.stack.includes("salveaza"));
Rezultat
EroareValidare: Valoare lipsă
false true
Greșeli frecvente
- Folosești funcția în cod pentru Firefox sau Safari vechi fără verificare. Scrie
Error.captureStackTrace?.(obiect).
Comenzi înrudite
Error (throw new Error): Creează un obiect de eroare cu mesaj, tip și stivă de apeluri, pe care îl arunci cu throw.try / catch: Prinde erorile, ca programul să nu se oprească și să poți afișa un mesaj clar.console.trace: Afișează mesajul împreună cu stiva de apeluri: ce funcții au dus până în acel punct.