krishnaveni76's picture
Final changes
c3c7748
import sys
class AnimeRecommendorException(Exception):
"""
Custom exception class for handling errors in the Anime Recommendation project.
This class captures the error message, file name, and line number where an exception occurred.
It is useful for debugging and identifying the source of the error in a structured way.
"""
def __init__(self,error_message, error_details:sys):
"""
Initialize the AnimeRecommendorException instance.
Args:
error_message (str): The error message describing the exception.
error_details (sys): The sys module, used to extract exception details.
Attributes:
error_message (str): Stores the original error message.
lineno (int): The line number where the exception occurred.
file_name (str): The file name where the exception occurred.
"""
self.error_message = error_message
_,_,exc_tb = error_details.exc_info()
self.lineno = exc_tb.tb_lineno
self.file_name = exc_tb.tb_frame.f_code.co_filename
def __str__(self):
"""
Return the formatted error message.
Returns:
str: A string containing the file name, line number, and error message.
"""
return "Error occured in python script name [{0}] line number [{1}] error message [{2}]".format(
self.file_name,self.lineno, str(self.error_message))
if __name__=="__main__":
try:
a = 1/0 # This example will raise a ZeroDivisionError
print("This will not be printed",a)
except Exception as e:
raise AnimeRecommendorException(e,sys)