સિંક્રોનસ ભૂલો try/catch/finally નો ઉપયોગ કરે છે, અને તમે throw Error ઑબ્જેક્ટ્સ (string નહીં) કરવા જોઈએ જેથી તમને stack trace મળે.
js
{
data = .(input);
} (err) {
(err ) (err);
err;
} {
();
}
સિંક્રોનસ ભૂલો try/catch/finally નો ઉપયોગ કરે છે, અને તમે throw Error ઑબ્જેક્ટ્સ (string નહીં) કરવા જોઈએ જેથી તમને stack trace મળે.
{
data = .(input);
} (err) {
(err ) (err);
err;
} {
();
}
// async/await → wrap awaits in try/catch
async function load() {
try {
return await fetch(url).then(r => r.json());
} catch (err) { showError(err); }
}
// promises → use .catch
fetch(url).then(use).catch(showError);
try {
setTimeout(() => { throw new Error("boom"); }, 0); // ❌ NOT caught
} catch (e) { /* never runs — the throw happens later, outside this stack */ }
setTimeout callback પછીના ટીક પર ચાલે છે, તેથી આસપાસનો try લંબા સમય પહેલા જતો રહ્યો છે. ભૂલ callback ની અંદર હેન્ડલ કરો.
window.addEventListener("unhandledrejection", e => log(e.reason)); // browser
process.on("unhandledRejection", err => log(err)); // Node
instanceof ચેક્સ માટે Error (અથવા કસ્ટમ સબક્લાસેસ) throw કરો.catch (e) {}). હંમેશા લોગ અથવા rethrow કરો.