Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
class MyError(Exception):<br />
... def __init__(self, value):<br />
... self.value = value<br />
... def __str__(self):<br />
... return ‘self.value‘<br />
...<br />
>>> try:<br />
... raise MyError(2*2)<br />
... except MyError, e:<br />
... print ’My exception occurred, value:’, e.value<br />
...<br />
My exception occurred, value: 4<br />
>>> raise MyError, ’oops!’<br />
Traceback (most recent call last):<br />
File "", line 1, in <br />
__main__.MyError: ’oops!’<br />
Clasele de excepţii pot fi proiectate ca oricare alta clasă, dar in mod uzual ele sunt simple, deseori oferind numai<br />
un număr de atribute, ce permit să informeze asupra erorii ce a fost tratată. Când se implementează un modul, care<br />
poate genera un număr distinct de erori, se obişnuieşte să se creeze o clasa de bază a excepţiilor definite de acest<br />
modul şi subclase care să creeze clase specifice pentru diferite condiţii de eroare :<br />
class Error(Exception):<br />
"""Base class for exceptions in this module."""<br />
pass<br />
class InputError(Error):<br />
"""Excetie generata pentru eroare de intrare.<br />
Atribute:<br />
expression -- expresia de intrare in care apare eroarea<br />
message -- explicarea erorii<br />
"""<br />
def __init__(self, expression, message):<br />
self.expression = expression<br />
self.message = message<br />
class TransitionError(Error):<br />
"""Generata cand o operatie asteapta o modificare<br />
de stare care nu este permisa<br />
Attributes:<br />
previous -- starea la inceputul tranzitiei<br />
next -- noua stare care este de asteptat sa apara<br />
message -- explicatie privind imposibilitatea tranzitiei<br />
"""<br />
def __init__(self, previous, next, message):<br />
self.previous = previous<br />
self.next = next<br />
self.message = message<br />
Multe excepţii sunt definite cu nume care se termina în “Error,” similar cu denumirea excepţiilor standard.<br />
Multe module îşi definesc propriile excepţii pentru a raporta erorile ce pot apărea în funcţiile definite de ele. Mai<br />
multe informaţii despre clase veţi găsi în capitolul dedicat acestora.<br />
8.5. Excepţii definite de utilizator 55