DEV Community

Cover image for Exceptions (Dutch)
compilerboiler
compilerboiler

Posted on

Exceptions (Dutch)

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)