Nenhuma descrição
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.

exceptions.py 1.1KB

1234567891011121314151617181920212223242526272829303132
  1. #-*- coding: utf-8 -*-
  2. class LodelException(Exception):
  3. pass
  4. class LodelExceptions(LodelException):
  5. ##@brief Instanciate a new exceptions handling multiple exceptions
  6. # @param msg str : Exception message
  7. # @param exceptions dict : A list of data check Exception with concerned field (or stuff) as key
  8. def __init__(self, msg = "Unknow error", exceptions = None):
  9. self._msg = msg
  10. self._exceptions = dict() if exceptions is None else exceptions
  11. def __repr__(self):
  12. return self.__str__()
  13. def __str__(self):
  14. msg = self._msg
  15. for_iter = self._exceptions.items() if isinstance(self._exceptions, dict) else enumerate(self.__exceptions)
  16. for obj, expt in for_iter:
  17. msg += "\n\t{expt_obj} : ({expt_name}) {expt_msg}; ".format(
  18. expt_obj = obj,
  19. expt_name=expt.__class__.__name__,
  20. expt_msg=str(expt)
  21. )
  22. return msg
  23. ##@brief Designed to be a non catched exception.
  24. #
  25. #@note Designed to be raised in dramatic case
  26. class LodelFatalError(Exception):
  27. pass