Wyjątki w Pythonie
14 July 2008
Comments
Zgłoszenie wyjątku oznacza błąd programu i przerwanie normalnego działania programu. Wyjątki można generować samemu, lub też mogą one być generowane przez same moduły. By samemu wygenerować wyjątek korzystamy z instrukcji raise:
raise wyjątek [, wartość]
raise RuntimeError, 'Poważny błąd'
Aby przechwycić wyjątek trzeba użyć instrukcji try / except:
raise RuntimeError, 'Poważny błąd'
try:
print "tutaj cos robimy"
except TYP_WYJĄTKU, e:
print "MAMY PROBLEM - ", e
Przykłady, proste:
try:
a = 2
b = 0
if b == 0:
raise RuntimeError, 'Nie mozna dzielic przez zero'
print a/b
except RuntimeError, error:
print "UWAGA: ", error
try:
a = 2
b = 0
if b == 0:
raise RuntimeError, 'Nie mozna dzielic przez zero'
print a/b
except Exception, e:
print "UWAGA ", e
try:
a = 2
b = 0
print a/b
except Exception, e:
print "UWAGA ", e
Exception - Wszystkie wyjątki
SystemExit - Generowany przez sys.exit()
IOError - Błędy związane z operacjami na plikach lub operacjami I/O
EOFError - Zgłaszany po osiągnięciu końca pliku
KeyboardInterrupt - Generowany przez klawisze przerwania (zazwyczaj CTRL+C)
SyntaxError - Błąd składni
Po bloku except można również dodać blok else, który wykonany zostanie jeżeli nie zgłoszony zostanie wyjątek. Można też stosować blok finally - kod tego bloku definiuje operacje mające zakończyć działanie kodu z bloku try. Bloki finally i except nie mogą być stosowane razem - finally zawiera kod, który niezależnie od wyjątków ma zostać wykonany (np. zamknięcie pliku mimo jakiś błędów)
SystemExit - Generowany przez sys.exit()
IOError - Błędy związane z operacjami na plikach lub operacjami I/O
EOFError - Zgłaszany po osiągnięciu końca pliku
KeyboardInterrupt - Generowany przez klawisze przerwania (zazwyczaj CTRL+C)
SyntaxError - Błąd składni
RkBlog
Comment article