Source code for pyensae.sql.database_exception

"""
defines logged exceptions for SQL requests


:githublink:`%|py|6`
"""


[docs]class DBException(Exception): """ custom exception :githublink:`%|py|12` """ pass
[docs]class ExceptionSQL(DBException): """ exception related to SQL instructions and only them :githublink:`%|py|20` """
[docs] def __init__(self, description, ex, sql, log=True): """ :param description: message :param ex: sqlite exception :param sql: SQL instruction :param log: log the exception :githublink:`%|py|28` """ DBException.__init__(self, description + "\n" + sql) self.ex = ex self.sql = sql if False and log: print(description + "\n" + sql) # pragma: no cover
[docs] def __str__(self): mes = Exception.__str__(self) mes += "\n" + str(self.ex) mes += "\n" + "\n".join(repr(self.sql).split("\\n")) if len(mes) > 10000: mes = mes[:10000] + "\n..." # pragma: no cover return mes