Poikkeus

Kohteesta Wikipedia
Siirry navigaatioon Siirry hakuun

Poikkeus tarkoittaa 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[muokkaa | muokkaa wikitekstiä]

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

  • nollalla jakaminen
  • viittaus väärään muistialueeseen
  • virheellinen käsky

Ohjelmistopoikkeukset[muokkaa | muokkaa wikitekstiä]

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[muokkaa | muokkaa wikitekstiä]

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[muokkaa | muokkaa wikitekstiä]

>>> 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[muokkaa | muokkaa wikitekstiä]

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

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. a b Charles P. Shelton: Exception Handling kevät 1999. Carnegie Mellon University. Viitattu 10.7.2018.
  2. Boost Exception 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 Viitattu 10.7.2018.
  8. Exceptions in C with Longjmp and Setjmp Viitattu 4.4.2018.
Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.