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