Akjava/Qwen2.5-0.5B-Rag-Thinking-Flan-T5
2
1"""
2This module defines a custom exception handling class and a function to get error message with details of the error.
3"""
4
5# Standard Library
6import sys
7
8# Local imports
9from logger import logging
10
11
12# Function Definition to get error message with details of the error (file name and line number) when an error occurs in the program
13def get_error_message(error, error_detail: sys):
14 """
15 Get error message with details of the error.
16
17 Args:
18 - error (Exception): The error that occurred.
19 - error_detail (sys): The details of the error.
20
21 Returns:
22 str: A string containing the error message along with the file name and line number where the error occurred.
23 """
24 _, _, exc_tb = error_detail.exc_info()
25
26 # Get error details
27 file_name = exc_tb.tb_frame.f_code.co_filename
28 return "Error occured in python script name [{0}] line number [{1}] error message[{2}]".format(
29 file_name, exc_tb.tb_lineno, str(error)
30 )
31
32
33# Custom Exception Handling Class Definition
34class CustomExceptionHandling(Exception):
35 """
36 Custom Exception Handling:
37 This class defines a custom exception that can be raised when an error occurs in the program.
38 It takes an error message and an error detail as input and returns a formatted error message when the exception is raised.
39 """
40
41 # Constructor
42 def __init__(self, error_message, error_detail: sys):
43 """Initialize the exception"""
44 super().__init__(error_message)
45
46 self.error_message = get_error_message(error_message, error_detail=error_detail)
47
48 def __str__(self):
49 """String representation of the exception"""
50 return self.error_message
51 