File size: 1,189 Bytes
aba2f7b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | import sys
from src.logging import logger
class CustomException(Exception):
def __init__(self, error_message, error_details: sys):
self.error_message = error_message
exc_type, exc_value, exc_tb = sys.exc_info()
# Check if traceback exists
if exc_tb is not None:
self.lineno = exc_tb.tb_lineno
self.file_name = exc_tb.tb_frame.f_code.co_filename
else:
self.lineno = None
self.file_name = None
def __str__(self):
# Handle case where no traceback information is available
if self.lineno is None or self.file_name is None:
return f"Error occurred: {self.error_message}"
else:
return f"Error occurred in python script name [{self.file_name}] line number [{self.lineno}] error message [{str(self.error_message)}]"
# if __name__ == '__main__':
# try:
# logger.logging.info("Enter the try block")
# a = 1 / 0 # Division by zero will trigger an exception
# print("This will not be printed", a)
# except Exception as e:
# raise CustomException(e, sys) # Pass the exception and sys to the custom exception
|