Poikkeusten käsittely on yleinen ohjelmointikielirakenne, jonka avulla ohjelmat voivat tunnistaa ja käsitellä sujuvasti virheitä, joita he voivat kohdata suorituksen aikana. Se toimii muuttamalla ohjelman kulkua normaalista suorituksesta tiettyyn lieventävien toimien joukkoon, kun virhe havaitaan. Ohjelmoija voi luoda tiettyjä toimintoja, joita käytetään, kun tiettyjä virheitä tapahtuu. Poikkeusten löytäminen ja käsittely ei välttämättä ole kohtalokas tapahtuma ohjelmalle; joskus ohjelman suorittaminen voi jatkua poikkeuskäsittelyn jälkeen.
Ohjelmoitaessa tiettyä koodia on usein mahdollista määrittää tarkasti, missä poikkeusten käsittely on tarpeen. Siinä tapauksessa useimmilla ohjelmointikielillä, mukaan lukien Java ja C ++, on erityiset avainsanat ja ohjausrakenteet, jotka voidaan sijoittaa koodiin virheiden käsittelemiseksi. Nämä rakenteet voivat käsitellä monenlaisia virheitä, ja asianmukaisella huollolla ohjelmoija voi usein ennakoida suurimman osan mahdollisista virheistä tietylle koodille.
Poikkeusten käsittelystä voi olla hyötyä myös syötteen jäsentämisessä. Esimerkiksi numeerista tuloa jäsennettäessä voidaan heti erottaa, onko jokin tieto ei-numeerinen, jos oikea testi- ja poikkeuskäsittelijä on määritetty. Jos poikkeus tapahtuu, käsittelijä ottaa sen kiinni ja ilmoittaa heti ohjelmalle, että syöte on virheellinen. Mitä seuraavaksi tapahtuu, riippuu siitä, miten muu ohjelma on rakennettu; se saattaa poistua tai se voi jatkua ja jättää huomiotta virheellisen syötteen.
Oikea poikkeusten käsittely ei takaa virheetöntä ohjelman suorittamista. Se ei myöskään takaa, että ohjelma pysähtyy virheen löytämisen jälkeen, eikä se takaa, että ohjelma jatkuu. Jotta virheet voidaan käsitellä oikein, ohjelmoijan on käytettävä poikkeusten käsittelyä yhdessä järjen kanssa ja huolellisesti yksityiskohtiin. Ihannetapauksessa virheiden asianmukainen käsittely sallii ohjelman välttää kaikkein vakavimmat virheet, kuten virheellisen muistin käytön, ja antaa samalla informatiivisia viestejä korjattavista ongelmista, kuten virheellisistä syötteistä tai odottamattomista ongelmista ohjelman suorittamisessa.
Poikkeusten käsittely sieppaa virheitä, joita kutsutaan suoritusajan virheiksi; se ei takaa, että koodissa ei ole virheitä tai syntaksivirheitä. Virheiden käsittely koodissa ei takaa koodin oikeellisuutta. Virheiden käsittelyssä voi olla virheitä koodissa, ja jopa paras virheenetsintä on harvoin idioottivarmaa. Kun virheenkorjaus on valmis, poikkeusten käsittely mahdollistaa helpomman koodin ylläpidon ja tulevan virheenkorjauksen tarvittaessa.