Introduksjon til unntakssituasjoner i Python
I denne delen vil unntakssituasjoner i Python blitt behandlet. For å starte må vi forstå hva de egentlig er.
Når man skriver et hvilket som helst program, regner utvikleren implisitt med at alle de brukte programvare-tekniske mekanismene vil fungere korrekt.
Dette er imidlertid ikke alltid tilfelle. Ved overføring av data over nettverket oppstår det brudd i forbindelsen og dataene kommer til oss i en ukorrekt form, eller kommer ikke i det hele tatt. Ved skriving av en fil viser det seg at plassen som er tildelt oss på harddisken er oppbrukt, og filen kan ikke skrives. Ved lesing av en fil viser det seg at en slik fil ikke eksisterer og vi har ingen sted å lese fra. Ved utskrift av data til skriveren oppstår det brudd i kabelen som forbinder skriveren og datamaskinen.
Alle de beskrevne situasjonene har en felles essens: det oppstår en feil som fører til umulighet eller meningsløshet av å fullføre den planlagte operasjonen.
Det finnes også situasjoner der det oppstår en feil som ikke er et brudd. For eksempel, du spør brukeren om deres email, og de skriver inn email i et ukorrekt format. Det er klart at programmet vårt ikke kan fortsette å behandle emailen, siden den ikke er korrekt. Men likevel er dette ikke en unntakssituasjon. Programmet vårt kan selv rette opp situasjonen: det vil vise en feilmelding og brukeren vil gjenta innskrivingen.
Faktisk er forskjellen mellom et brudd og ikke-brudd ganske uklar. En hendelse som ett program kan tolke som en unntakssituasjon, kan et annet program tolke som en feil som det kan håndtere.
Kriteriet her er som følger: hvis programmet ditt kan fortsette å utføre det den er ment å gjøre etter at problemet oppstår, så er det ikke en unntakssituasjon, men hvis den ikke kan - ja, da er det et unntak.
For eksempel, vi har et program som skal spørre om brukerens email. Hvis brukeren skriver inn email i et ukorrekt format - er dette ikke et brudd. Dette er et forventet problem og programmet vårt vil spørre brukeren om email så mange ganger inntil hen skriver den inn korrekt.
La oss si at programmet vårt, som spør om email, også må sende denne korrekte emailen gjennom internett. Da viser det seg at internettet ikke fungerer. Dette er derimot et problem: programmet kan på ingen måte sende data gjennom internett hvis internettet ikke fungerer. Programmet kan likevel fortsette sin utførelse: det kan vise informasjon om problemet, prøve å sende på nytt etter en stund, og så videre. Men disse handlingene er ikke helt det som programmet var beregnet for, siden hovedhandlingen - sending av email - programmet ikke vil kunne utføre.
Derfor avhenger tolkningen av hva som regnes som normalt oppførsel og hva som regnes som unntak ofte av oppgavene programmereren står overfor.