Files
py_enjoy/template/TemplateException.py
2026-02-27 14:37:10 +08:00

45 lines
1.2 KiB
Python

#!/usr/bin/env python3.9
# -*- coding: utf-8 -*-
"""
JFinal TemplateException - Template Exception
"""
class TemplateException(Exception):
"""Template runtime exception"""
def __init__(self, message: str, location = None, cause: Exception = None):
"""
Initialize template exception
Args:
message: Error message
location: Error location (optional)
cause: Original exception (optional)
"""
full_message = message
if location is not None:
full_message += str(location)
super().__init__(full_message)
self._location = location
self._cause = cause
@property
def location(self):
"""Get error location"""
return self._location
@property
def cause(self) -> Exception:
"""Get original cause"""
return self._cause
def __str__(self) -> str:
result = super().__str__()
if self._cause and self._cause != self:
result += f"\nCaused by: {self._cause}"
return result
def __repr__(self) -> str:
return f"TemplateException(message={super().__repr__()}, location={self._location})"