Python Toepassingen kunnen aangepaste Exceptions oproepen door een nieuwe Exception klasse te creëren. Deze moeten over-erven van de 'Exception'-klasse.
Wat is een Exception?
Een exception is een fout. Een exception kan worden gegooid met het raise
keywoord. Ze kunnen worden afgehandeld met een try-catch blok.
U kunt dit proberen in de Python-shell, door raise Exception("uw bericht")
in te typen.
➜ ~ python3
Python 3.7.5 (standaard, 20 november 2019, 09:21:52)
GCC 9.2.1 20191008] op linux.
Typ "help", "copyright", "credits" of "licentie" voor meer informatie.
>>> raise Exception("No can do")
Traceback (laatste oproep):
Bestand "<stdin>", regel 1, in <module>
Exception: Nee, dat kan niet
>>>
Alle ingebouwde Exceptions maken gebruik van de Exception
klasse. Bij het maken van een nieuw type Exceptie klasse, moet van de Exception klasse Except geeerfd worden (inheritance).
Custom Exception
Het onderstaande programma maakt een aangepaste Exceptie HappyError
, die erft van de Exception
klasse.
class HappyError(Exception):
pass
raise HappyError("To happy to run")
Het bovenstaande programma gooit dan de HappyError
uitzondering:
➜ ~ python3 program.py
Traceback (laatste oproep):
Bestand "t.py", regel 5, in <module>
raise HappyError("To happy to run")
__main__.HappyError: To happy to run
Veel modules definiëren hun eigen uitzonderingen.
Optioneel kunt u de constructor op deze manier overschrijven:
class ValidationError(Exception):
def __init__(zelf, bericht, fouten):
super().__init__(bericht)
# Nu voor uw aangepaste code...
self.errors = fouten
Maar met Python 3 Exceptions hoef je niets te overrulen. Als je alleen maar een informatieve boodschap wilt voor je uitzondering, doe dan dit:
class MyException(Exception):
pass
raise MyException("Gaat iets mis")
Top comments (0)