Programutvikling og feilhåndtering
Lærebok:
Ch. 12 - Handling Exceptions (t.o.m. 12.3)
Det viktigste er å sørge for at du selv forstår hva som er årsaken til feilen. Men hvordan gjør du det?
Demo:
https://folk.ntnu.no/sverrsti/INGG1001-H2019/Exceptions.html
Noen av Pythons Exceptions:
AttributeError
ImportError
IndexError
KeyError
NameError
TypeError
ValueError
ZeroDivisionError
FileNotFoundError
Se forklaring på disse i lærebok, tabell 12.1
Når disse feilsituasjonene oppstår skriver Python ut Exception-navnet med en forklaring
Eksempel:
Traceback (most recent call last):
File "ams4periods.py", line 32, in <module>
with open('Xmeteringvalues.csv') as f:
FileNotFoundError: [Errno 2] No such file or directory:
'Xmeteringvalues.csv'
try:
with open('meteringvalues.csv') as f:
# do stuff with file
except FileNotFoundError:
print("Finner ikke fil: meteringvalues.csv")
(Med mindre du vet akkurat hva du gjør)
try:
with open('meteringvalues.csv') as f:
# do stuff with file
except:
print("Finner ikke fil: meteringvalues.csv")
try:
# diverse matematiske operasjoner
except ValueError:
print('Cannot convert integer')
except IndexError:
print('List index is out of range')
except ZeroDivisionError:
print('Division by zero not allowed')
Med andre ord:
Sjekk hele tiden hvordan dataene dine ser ut ut etter at du har gjort operasjoner på dem
Deretter - når dataene er på en form du er fornøyd med kan du legge de inn i en datastruktur (f.eks. liste eller dictionary)
Sjekk om alle data har kommet inn i datastrukturen ved å undersøke lengden på en liste f.eks.
Python Standard Library har mange metoder som kan brukes for å finne ut noe om verdier i en liste bestående av tall.
Se f.eks. dokumentasjonen for
sum()
min()
max()
Se noe av dette i praksis på opptaket fra 23.10.19, for-løkke-eksempel, med data fra Boston Marathon.