Chyby v programovaní sú nevyhnutné. Skôr či neskôr vaša aplikácia zaznamená neočakávané správanie. Ako každý iný programovací jazyk, aj JavaScript vyvoláva chyby, keď sa vo vašom kóde niečo pokazí.

Chyby narušujú normálny priebeh aplikácie. Ale tiež pomáhajú chrániť vašu aplikáciu pred nepredvídateľným správaním. Vedieť, ako správne zaobchádzať s chybami, je kľúčové.

Prečo je riešenie chýb dôležité?

Spracovanie chýb prispieva k lepšej používateľskej skúsenosti. Predvolené a niekedy aj podrobné chyby JavaScriptu môžete zameniť za svoje vlastné chybové hlásenia, ktoré sú pre človeka lepšie čitateľné. Môžete elegantne zvládnuť príčiny niektorých chýb a nechať svoj program spustený namiesto toho, aby ste ho ukončili.

Spracovanie chýb je tiež užitočné počas vývoja. Môžete zachytiť chybu runtime a urobiť s ňou niečo užitočné, napríklad prihlásením do konzoly prehliadača. Je to elegantnejšie ako chyba spôsobujúca zrútenie a nevedieť, kde alebo prečo sa chyba vyskytla.

Štruktúra chýb vstavaných v JavaScripte

instagram viewer

Chyby JavaScriptu sú objekty s tromi vlastnosťami:

  • názov: Toto je názov chyby. Napríklad chýbajúci názov premennej vyvolá chybu s názvom SyntaxError.
  • správu: Toto je telo správy a textovo vysvetľuje chybu.
  • spôsobiť: Túto vlastnosť môžete použiť s vlastnými chybami na sledovanie zásobníka hovorov.

Bežné typy chýb v JavaScripte

Tu sú niektoré bežné chyby nájdené v JavaScripte.

Chyba syntaxe

Keď sa JavaScript pokúša interpretovať váš kód, môžu sa vyskytnúť chyby syntaxe. Ak váš kód nezodpovedá správnej syntaxi, zobrazí sa chyba. Niektoré bežné chyby, ktoré môžu spôsobiť chyby syntaxe, sú:

  • Chýbajú názvy premenných.
  • Po funkcii chýba „}“.
  • Chýba „“)“ po podmienke.

ReferenceError

Referenčné chyby sa vyskytujú, keď sa o to program pokúša odkazovať na premennú ktorý je nedostupný alebo mimo rozsahu.

TypeError

JavaScript môže vyvolať chybu typu, keď nemôže vykonať operáciu, pretože očakávaný typ sa líši od toho, ktorý dostane.

URIError

Táto chyba sa vyskytuje, ak nesprávne používate globálnu funkciu spracovania URI, ako je decodeURIComponent(). V dôsledku toho kódovanie alebo dekódovanie zlyhá.

AggregateError

Táto chyba sa používa na vyjadrenie viacerých chýb zabalených do jednej. Použite ho, keď chcete vyhodiť veľa chýb naraz. Napríklad Promise.any() môže vyvolať AggregateError(), keď odmietnu všetky sľuby, ktoré jej boli odovzdané.

Vnútorná chyba

InternalError sa vyvolá, keď sa vyskytne chyba vo vnútri nástroja JavaScript.

RangeError

Niektoré funkcie určujú rozsah hodnôt, ktoré môžete zadať ako argumenty. Táto chyba sa vyskytuje, keď sa pokúsite zadať hodnotu, ktorá nie je zahrnutá v tomto rozsahu.

Riešenie chýb pri pokuse... Catch Block

JavaScript poskytuje vstavanú funkciu spracovania výnimiek s skúste...chytiť...konečne blokovať. Umožňuje vám tiež upozorniť na svoje vlastné chyby pomocou hodiť operátor.

Na spracovanie chýb, ktoré sa vyskytnú počas behu, môžete použiť blok try...catch. Do bloku try napíšete platný kód, od ktorého očakávate, že sa vykoná správne. Do bloku catch môžete napísať kód na spracovanie chýb.

skúste {
// Platný kód Javascript
} chytiť (chyba) {
// Chyba spracovania
} konečne {
// Spustí sa, aj keď sa vyskytne chyba
}

Blok catch sa ignoruje, ak kód v bloku try nevyvoláva žiadne chyby. Ak vyvolá chybu, vykonanie preskočí na blok catch. Kód v bloku konečne sa spustí bez ohľadu na to, či sa vyskytne chyba alebo nie. Tento blok nie je povinný, preto ho vynechajte, ak ho nepotrebujete.

Kód, ktorý zahrniete do bloku try, musí byť platný. Ak nie, JavaScript vyvolá chybu analýzy.

Pozrime sa na praktický príklad:

skúste {
konzoly.log (text)
} chytiť (chyba) {
konzoly.log(chyba.správa)
} konečne {
console.log("Bude vykonaný bez ohľadu na to")
}

Tento program sa pokúša zaprotokolovať hodnotu textovej premennej. Keďže táto premenná nie je definovaná, program vyvolá chybu. Táto chyba je vytlačená na konzole v bloku catch. Konečný blok sa potom spustí a vytlačí vlastnú správu.

ReferenceError: text nie je definovaný
Bude vykonaný bez ohľadu na to

V situáciách, keď potrebujete upozorniť na vlastnú chybu, použite hodiť operátor.

Zvážte tento príklad, ktorý spôsobí chybu, ak sú údaje nepravdivé:

konšt data = getData()

skúste {
if (!data) {
hodiť "Žiadne dáta"
}

konzoly.log (údaje)
// ďalej
} chytiť(chyba) {
konzoly.log (chyba) // "Žiadne dáta"
}

V tomto príklade program volá funkciu getData() a jej výsledok priradí dátovej premennej. V bloku try blok vyvolá vlastnú chybu, ak sú údaje prázdne. Blok catch zachytí túto chybu a prihlási ju do konzoly.

Hádzanie chýb je pri vývoji veľmi prospešné. Pomocou vlastného chybového hlásenia môžete pochopiť, prečo vaša aplikácia nefunguje podľa očakávania.

Ako ukazuje tento príklad, pre chybový objekt môžete použiť reťazec. V skutočnosti môžete vyhodiť akýkoľvek výraz JavaScript ako chybu. V záujme konzistentnosti so vstavanými chybami však použite objekt JavaScript obsahujúci názov a správu.

hodiť {
názov: "Názov chyby",
správa: "Chybná správa"
}

Pri vytváraní chýb môžete použiť aj vstavané konštruktory JavaScriptu. Medzi tieto konštruktory patria okrem iného Error, SyntaxError a ReferenceError.

Ak chcete vyvolať chybu pomocou konštruktora Error, použite tento kód:

hodiťNovýChyba("Žiadne dáta")

Teraz môžete uviesť meno a správu.

konzoly.log (error.name) // Chyba
konzoly.log (chybová. správa) // Žiadne dáta

Rozšírenie objektu chyby JavaScript

Vlastná trieda chýb sa hodí pri riešení chýb, ktoré nezodpovedajú objektom, ktoré už poskytuje JavaScript. Môžete napríklad chcieť izolovať chybu overenia údajov ako špecifický typ s názvom ValidationError.

Môžete použiť a Trieda JavaScript ES2015 na vytvorenie vlastnej triedy chýb.

triedaValidationErrorpredlžujeChyba{
konštruktér(správa) {
Super(správa);
toto.meno = "ValidationError";
}
}

Vyhoďte chybu pomocou triedy ValidationError takto:

hodiťNový ValidationError("Vaše chybové hlásenie")

Vyvolanou chybou bude objekt s názvom a hodnotami správy.

{
názov: "ValidationError",
správa: "Vaša chybová správa"
}

Chyby vám pomôžu

Spracovanie chýb je základnou súčasťou programovania bez ohľadu na jazyk, ktorý používate. JavaScript má skvelú podporu pre vyvolávanie a zachytávanie chýb v štýle výnimiek. Má tiež niekoľko vstavaných typov chýb, ktoré môžete spracovať a použiť pre svoje vlastné prípady.

Niektoré chyby, ako napríklad chyby syntaxe, môžu zostať nerozpoznané, keď píšete JavaScript v „nedbalom režime“. Použitie prísneho režimu umožňuje JavaScriptu zachytiť chyby, ktoré by inak ignoroval.