Poikkeus

Poikkeus tarkoittaa tietotekniikassa ennakoimattomia tai epänormaaleja tilanteita järjestelmän toiminnassa.[1] Käsittelemättömät poikkeukset voivat johtaa järjestelmän kaatumiseen.[1]

Poikkeus on ohjelmointikielissä keino ilmoittaa vikatilanteesta ja palauttaa toiminta toiselle tasolle tilanteen käsittelemiseksi.[2][3] Laitteistotasolla poikkeus tarkoittaa normaalin suorituksen keskeyttämistä suorittimessa, kuten virheellinen käsky tai suojattu muistialue.[4][5]

Laitteistopoikkeukset

Laitteistotason poikkeuksia ovat muun muassa:[6][7]

Ohjelmistopoikkeukset

Poikkeuksien yksi esimerkkikohteista ovat erilaiset ohjelmakirjastot. Ohjelmakirjaston ajonaikaiset virheet voi usein kirjaston tekijä havaita mutta hän ei tiedä miten menetellä sellaisen kanssa. Ohjelmakirjastoa käyttävä ohjelma/ohjelmoija tietää miten kertoa poikkeus ohjelman käyttäjälle tai reagoida siihen muulla tavoin.

Poikkeuksien käsitteleminen

Tavallisesti poikkeus yritään kokeilla try-funktiolla (tai muulla koodikielessä olevalla vastaavalla funktiolla) ja poikkeustilanteessa käsiteltävä koodi jälkeenpäin except-funktiolla (tai jälleen muulla koodikielessä olevalla vastaavalla). On myös mahdollista saada koodi tunnistamaan juuri tietty poikkeustyyppi.

Poikkeuksenkäsittely Pythonissa

>>> var1=False
>>> var2=99
>>> try:
       print(var1/var2)
    except:
       print("error")
error

C++, Java

  • try...catch -lause

Pascal, Python ja Delphi

  • try...except, tai
  • try...finally

Muut kielet

C-kielessä poikkeukset on mahdollista toteuttaa itse setjmp ja longjmp standardikirjaston funktioiden avulla.[8]

Lähteet

  1. Charles P. Shelton: Exception Handling kevät 1999. Carnegie Mellon University. Viitattu 10.7.2018.
  2. Boost Exception boost.org. Viitattu 10.7.2018.
  3. Raising Software Exceptions Microsoft. Viitattu 10.7.2018.
  4. About processor exceptions Arm. Viitattu 10.7.2018.
  5. Adam Zhang: Core Dump Management on the Solaris OS huhtikuu 2007. Sun Microsystems. Viitattu 10.7.2018.
  6. Hardware Exceptions Microsoft. Viitattu 10.7.2018.
  7. Hardware Exceptions hsafoundation.com. Arkistoitu 4.7.2018. Viitattu 10.7.2018.
  8. Exceptions in C with Longjmp and Setjmp di.unipi.it. Viitattu 4.4.2018.
    This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.