Adding error handling support
This commit is contained in:
44
modules/errors.py
Normal file
44
modules/errors.py
Normal file
@ -0,0 +1,44 @@
|
||||
# args
|
||||
# 0) variable name
|
||||
# 1) list of lines of the stack trace
|
||||
|
||||
class SPFException(Exception):
|
||||
def __init__(self, *args):
|
||||
super().__init__(*args)
|
||||
self.msg = "Une erreur est survenue"
|
||||
self.errorline = None
|
||||
|
||||
def __str__(self):
|
||||
return (f"[ligne {self.errorline}] " if self.errorline else "") + f"{self.msg}"
|
||||
|
||||
class SPFSyntaxError(SPFException):
|
||||
def __init__(self, *args):
|
||||
super().__init__(*args)
|
||||
self.msg = "Une erreur de syntaxe est survenue"
|
||||
|
||||
class SPFUnknownVariable(SPFException):
|
||||
def __init__(self, *args):
|
||||
super().__init__(*args)
|
||||
self.msg = f"la variable `{args[0]}` n'est pas déclarée"
|
||||
|
||||
class SPFUninitializedVariable(SPFException):
|
||||
def __init__(self, *args):
|
||||
super().__init__(*args)
|
||||
self.msg = f"la variable `{args[0]}` n'est pas initialisée"
|
||||
|
||||
class SPFAlreadyDefined(SPFException):
|
||||
def __init__(self, *args):
|
||||
super().__init__(*args)
|
||||
self.msg = f"la variable `{args[0]}` est déjà déclarée"
|
||||
|
||||
class SPFIncompatibleType(SPFException):
|
||||
def __init__(self, *args):
|
||||
super().__init__(*args)
|
||||
self.msg = f"`{args[0]}` n'est pas de type `{args[1]}`"
|
||||
|
||||
class SPFIndexError(SPFException):
|
||||
def __init__(self, *args):
|
||||
super().__init__(*args)
|
||||
self.msg = f"La liste `{args[0]}` ne posède pas d'élèment d'indexe {args[1]}"
|
||||
|
||||
|
Reference in New Issue
Block a user