⊗jsSpExcInr 137 of 294 menu

Bevezetés a kivételes helyzetekbe a JavaScript-ben

Most a JavaScript kivételes helyzeteit fogjuk megvizsgálni. Kezdetként bevezetést tartok, amelyben példákat mutatok be a kivételes helyzetekre általában minden programozási nyelv esetében, majd megnézzük, hogyan áll a dolog a JavaScript-ben.

Amikor programjainkat írjuk, hallgatólagosan azzal számolunk, hogy minden általunk használt programozati-technikai mechanizmus megfelelően fog működni.

Ez azonban nem mindig igaz. Adatátvitel közben a hálózaton megszakad a kapcsolat, és az adatok hibás formában érkeznek meg, vagy egyáltalán nem érkeznek meg. Fájl írásakor kiderül, hogy a kijelölt hely a merevlemezen elfogyott, és a fájl nem írható. Fájl olvasásakor kiderül, hogy a fájl nem létezik, és nincs miből olvasnunk. Adatok nyomtatásakor a nyomtatót és a számítógépet összekötő kábel megszakad.

Az összes leírt helyzetnek közös a lényege: valamilyen hiba történik, ami a tervezett művelet befejezésének lehetetlenségéhez vagy értelmetlenségéhez vezet.

Vannak olyan helyzetek is, amikor valamilyen hiba történik, amely nem meghibásodás. Például megkérdezed a felhasználó email címét, és ő helytelen formátumban adja meg az emailt. Nyilvánvaló, hogy programunk nem folytathatja az email feldolgozását, mivel az helytelen. De ez mégsem kivételes helyzet. Programunk magától is helyreállíthatja a helyzetet: kiír egy hibaüzenetet, és a felhasználó megismétli a bevitelét.

Valójában a meghibásodás és a nem meghibásodás közötti különbség meglehetősen elmosódott. Egy eseményt, amelyet egy program kivételes helyzetként értelmezhet, egy másik program úgy értelmezhet, mint valamilyen hiba, amellyel meg tud birkózni.

A kritérium a következő: ha egy probléma felmerülésekor a programod képes folytatni annak végrehajtását, amire szánták, akkor az nem kivételes helyzet, ha pedig nem képes, akkor igen, az kivétel.

Például van egy programunk, amely meg kell kérje a felhasználó email címét. Ha a felhasználó helytelen formátumban adta meg az emailt - az nem meghibásodás. Ez egy várt probléma, és programunk annyiszor fogja megkérdezni a felhasználó email címét, amíg az helyesen meg nem adja.

Tegyük fel, hogy a programunk, amely megkérdezi az email címet, el is kell küldje ezt a helyes email címet az interneten keresztül. Közben kiderül, hogy az internet nem működik. Ez már probléma: a program semmiképpen sem tudja az interneten keresztül elküldeni az adatokat, ha az internet nem működik. A program ennek ellenére folytathatja a végrehajtást: kiírhatja a probléma információit, újra megpróbálhatja az elküldést egy idő múlva, és így tovább. De ezek a műveletek már nem teljesen azok, amire a programot szánták, mivel az alapművelet - az email küldése - a program nem tudja megtenni.

Nagyon gyakran, hogy egy helyzet kivételes-e vagy sem, a programozási nyelvtől függ. Sok nyelvben, ha véletlenül nullával való osztás történik - az kivételnek számít (mivel nullával nem lehet osztani), de a JavaScript-ben - nem számít kivételnek (a JavaScript-ben lehet osztani nullával).

svptruende