|
"""
|
|
This module defines a custom exception handling class and a function to get error message with details of the error.
|
|
"""
|
|
|
|
|
|
import sys
|
|
|
|
|
|
from src.logger import logging
|
|
|
|
|
|
|
|
def get_error_message(error, error_detail: sys):
|
|
"""
|
|
Get error message with details of the error.
|
|
|
|
Args:
|
|
- error (Exception): The error that occurred.
|
|
- error_detail (sys): The details of the error.
|
|
|
|
Returns:
|
|
str: A string containing the error message along with the file name and line number where the error occurred.
|
|
"""
|
|
_, _, exc_tb = error_detail.exc_info()
|
|
|
|
|
|
file_name = exc_tb.tb_frame.f_code.co_filename
|
|
return "Error occured in python script name [{0}] line number [{1}] error message[{2}]".format(
|
|
file_name, exc_tb.tb_lineno, str(error)
|
|
)
|
|
|
|
|
|
|
|
class CustomExceptionHandling(Exception):
|
|
"""
|
|
Custom Exception Handling:
|
|
This class defines a custom exception that can be raised when an error occurs in the program.
|
|
It takes an error message and an error detail as input and returns a formatted error message when the exception is raised.
|
|
"""
|
|
|
|
|
|
def __init__(self, error_message, error_detail: sys):
|
|
"""Initialize the exception"""
|
|
super().__init__(error_message)
|
|
|
|
self.error_message = get_error_message(error_message, error_detail=error_detail)
|
|
|
|
def __str__(self):
|
|
"""String representation of the exception"""
|
|
return self.error_message
|
|
|