Custom Error Handling
Â
āĻāĻŦāĻžāĻ°Â ValueError āĻāĻāĻāĻž āĻŦāĻŋāϞā§āĻ-āĻāύ āĻāĻā§āϏāϏā§āĻĒā§āϏāύāĨ¤ āĻāĻŽāϰāĻž āĻāĻžāĻāϞ⧠āύāĻŋāĻā§āĻĻā§āϰ āϤā§āϰ⧠(custom) āĻāĻā§āϏāϏā§āĻĒāĻļāύ āĻĻā§āĻāϤ⧠āĻĒāĻžāϰāĻŋāĨ¤ āĻāĻŋāĻāĻžāĻŦā§ āĻāϰāĻŦā§ , āϤāĻžāϰ āĻāĻāĻāĻŋ āύāĻŽā§āύāĻž āĻā§āĻĄ āύāĻŋāĻā§ āĻĻā§āĻāĻž āϝāĻžāĻ āĨ¤
āĻāĻāĻāĻĒā§āĻ
Â
āĻāĻĻāĻžāĻšāϰāĻŖ ā§§-Â
custom exception āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāϰāĻŖ āĻĻā§āĻāĻž āϝāĻžāĻ āϝā§āĻāĻžāύ⧠āĻāĻŽāϰāĻž āϏāĻŋāĻŽā§āĻĒā§āϞ custom exception āĻā§āϞāĻžāϏ āϤā§āϰāĻŋ āĻāϰ⧠āϤāĻž raise āĻāϰāĻāĻŋ āĨ¤
ÂÂÂclass CustomException(Exception):“”” my custom exception class “””ÂÂtry:raise CustomException(‘This is my custom exception’)except CustomException as ex:print(ex)ÂāĻāĻāĻāĻĒā§āĻ
ÂÂÂThis is my custom exceptionÂÂ
āĻāĻĻāĻžāĻšāϰāĻŖ ⧍-Â
āĻāĻŽāϰāĻž āϤ⧠āĻāĻžāύāĻŋ āϝ⧠āĻā§āύ āĻāĻŋāĻā§ āĻĒāϰāĻŋāĻŽāĻžāĻĒ āĻŦāĻž āĻāĻžāĻāĻž āĻā§āύāĻžāϰ āĻā§āώā§āϤā§āϰ⧠āĻāĻāύ āύā§āĻā§āĻāĻŋāĻ āĻšā§ āύāĻžāĻš āĨ¤ āĻāĻ āϏāĻŦ āĻā§āώā§āϤā§āϰ⧠āĻāĻāĻāĻžāϰ  āϝāĻĻāĻŋ āĻā§āύ āĻāĻžāĻŦā§ āϝāĻĻāĻŋ āύā§āĻā§āĻāĻŋāĻ āĻāύāĻĒā§āĻ āĻĻāĻŋā§ā§ āĻĻā§ā§ āϤāĻŦā§ āĻāĻŽāϰāĻž custom exception āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻāĻāĻžāϰ āĻāϰ āĻā§āϞ āĻšā§ā§āĻā§ āϤāĻž āĻŦāϞāϤ⧠āĻĒāĻžāϰāĻŦā§.
ÂÂÂclass NegativeError(Exception):def __init__(self, data):self.data = dataÂtry:x = int(input(“Enter a number between positive integer: “))if x < 0:raise NegativeError(x)except NegativeError as e:print(f“You provided {e}. Please provide positive integer values only”)ÂāĻāĻāĻāĻĒā§āĻ
ÂÂÂEnter a number between positive integer: -30You provided -30. Please provide positive integer values onlyÂÂ
āĻāĻĻāĻžāĻšāϰāĻŖ ā§Š-Â
āϧāϰ⧠āϝ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻā§āĻŽā§āĻĒāĻžāύāĻŋ āϤ⧠āĻāĻāĻāĻŋ āĻāĻŦ āĻ āĻĢāĻžāϰ āĻĻāĻŋāϞ⧠āĻāĻŦāĻ āϤāĻžāϤ⧠āĻŦāϞ⧠āĻĻā§āĻā§āĻž āĻšāϞ⧠āϝ⧠āϤāĻžāĻĻā§āϰ āĻ āĻ āĻĒāĻāĻŋāĻļāύ āĻāϰ āĻāύā§āϝ āĻŦā§āϤāύ āϰā§āĻā§āĻ āĻšāĻā§āĻā§ ā§Ģā§Ļā§Ļā§Ļ-ā§§ā§Ģā§Ļā§Ļā§Ļ āĨ¤ āĻāĻŦāĻ āϝāĻžāϰāĻž āĻ āĻ āĻĒāĻāĻŋāĻļāύ āĻāϰ āĻāύā§āϝ āĻāĻŦā§āĻĻāύ āĻāϰāĻŦā§ āϤāĻžāĻĻā§āϰ āϏāĻžāĻŽā§āĻāĻžāĻŦā§āϝ āĻāϤ āĻŦā§āϤāύ āĻĒā§āϞ⧠āϤāĻž āĻŦāϞ⧠āĻĻāĻŋāϤ⧠āĻĻā§āĻā§āĻž āĻšāϞ⧠āĨ¤Â āĻāĻŽāϰāĻž āύāĻŋāĻā§āĻĻā§āϰ āĻŽāϤ custom āĻāĻā§āϏāϏā§āĻĒāĻļāύ āϤā§āϰāĻŋ āĻāϰ⧠āϝāĻž āĻĻāĻŋā§ā§ āĻāĻŽāϰāĻž āĻŦāϞāϤ⧠āĻāĻŦā§āĻĻāύāĻā§āϤ āĻŦā§āϝāĻžāĻāĻāĻŋ āĻāĻ āĻĒāĻāĻŋāĻļāύā§āϰ āĻāύā§āϝ āĻāĻĒāϝā§āĻā§āϤ āĻāĻŋāύāĻž
ÂÂÂclass SalaryNotInRangeError(Exception):def __init__(self, salary, message=“Salary is not in (5000, 15000) range”):self.salary = salaryself.message = messagesuper().__init__(self.message)Âdef __str__(self):return f‘{self.salary} -> {self.message}’ÂÂsalary = int(input(“Enter salary amount: “))if not 5000 < salary < 15000:raise SalaryNotInRangeError(salary)ÂāĻāĻāĻāĻĒā§āĻ
ÂÂÂEnter salary amount: 30000__main__.SalaryNotInRangeError: 30000 –> Salary is not in (5000, 15000) rangeÂÂ
Â
āĻāĻĻāĻžāĻšāϰāĻŖ ā§Ē âÂ
āĻāĻŽāĻžāĻĻā§āϰ āĻāĻāĻāĻŋ āĻāĻžāĻ āĻāϰāĻŦā§ āĻŽā§āϝāĻžāϰā§āĻ āϏāĻžāĻāĻ āĻŦāĻžāύāĻžāύ⧠āϝ⧠āϏāĻžāĻāĻ āĻ āĻŦāĻļā§āϝāĻ āĻāĻŽāĻžāĻĻā§āϰ āĻĒā§āϰāĻĨāĻŽ āĻā§āĻ āĻāϰāϤ⧠āĻšāĻŦā§ āĻĒāĻžāϤā§āϰ/ āĻĒāĻžāϤā§āϰ⧠āĻŦāĻŋā§ā§āϰ āĻŦā§āϏ āĻšā§ā§āĻā§ āĻāĻŋāύāĻž āĨ¤ āĻāĻ āĻāύā§āϝ āĻāϞā§āύ āĻāĻŽāϰāĻž custom āĻāĻā§āϏāϏā§āĻĒāĻļāύ āϤā§āϰāĻŋ āĻāϰāĻŋ āϝāĻž āĻĻāĻŋā§ā§ āĻāĻŽāϰāĻž āĻā§āĻŦ āϏāĻšāĻā§ āĻŦāϞāϤ⧠āĻĒāĻžāϰāĻŦā§ āĻ āĻ āĻāύ āĻŦāĻŋāĻŦāĻžāĻšāϝā§āĻā§āϝ āĻĒāĻžāϤā§āϰ/āĻĒāĻžāϤā§āϰ⧠āĻāĻŋāύāĻž āĨ¤
ÂÂÂ# āĻ āĻ āĻŦā§āϝāĻžāĻā§āϤāĻŋāϰ āĻŦāĻŋāĻŦāĻžāĻš āĻŦā§āϏ āĻšā§ā§āĻā§ āĻāĻŋāύāĻž āϤāĻžāϰ āĻāύā§āϝ custom exception āϤā§āϰāĻŋ āĻāϰāϞāĻžāĻŽclass TooYoungException(Exception):def __init__(self, arg):self.msg=arg# āĻ āĻ āĻŦā§āϝāĻžāĻā§āϤāĻŋāϰ āĻŦāĻŋāĻŦāĻžāĻš āĻŦā§āϏ āĻĒāĻžāϰ āĻšā§ā§ āĻā§āĻā§ āĻāĻŋāύāĻž āϤāĻžāϰ āĻāύā§āϝ custom exception āϤā§āϰāĻŋ āĻāϰāϞāĻžāĻŽclass TooOldException(Exception):def __init__(self, arg):self.msg=argÂage=int(input(“Enter Age: “))if age>60:raise TooOldException(“Your age already crossed marriage age…no chance of getting marriage”)elif age<18:raise TooYoungException(“Plz wait some more time you will get best match soon!!!”)else:print(“You will get match details soon by email!!!”)ÂÂ
āĻāύāĻĒā§āĻ āĻāĻāĻāĻĒā§āĻ Enter Age: 78 __main__.TooOldException: Your age already crossed marriage ageâĻno chance of getting marriage Enter Age: 16 __main__.TooYoungException: Plz wait some more time you will get best match soon!!! Enter Age: 25 You will get match details soon by email!!! Â
āĻāĻĻāĻžāĻšāϰāĻŖ ā§Ģ â
āĻāĻŽāϰāĻž āĻāĻāύ āĻāĻāĻāĻŋ āϤāĻžāĻĒāĻŽāĻžāϤā§āϰāĻž āĻā§āϝāĻžāϞāĻā§āϞā§āĻ āĻāϰāĻžāϰ āĻĢāĻžāĻāĻļāύ āϤā§āϰāĻŋ āĻāϰāĻŦā§Â āϝāĻž āĻĻāĻŋā§ā§ āĻāĻŽāϰāĻž āĻĢāĻžāϰā§āύāĻšāĻžāĻāĻ āĻĨā§āĻā§ āϏā§āϞāϏāĻŋāϝāĻŧāĻžāϏ āĻ āĻāύāĻāĻžāϰā§āĻ āĻāϰāĻŦā§Â āĨ¤ āĻāĻŋāύā§āϤ⧠āĻāĻŽāϰāĻž āĻāĻžāύāĻŋ āϝ⧠āĻĢāĻžāϰā§āύāĻšāĻžāĻāĻ āϰā§āĻā§āĻ ā§Šā§¨- ⧍⧧⧍ āĻāĻŋāϤāϰ āĻĨāĻžāĻā§ āĨ¤ āĻāϰ āĻŦāĻžāĻāϰ⧠āĻāύāĻĒā§āĻ āĻĻāĻŋāϞ⧠āĻāĻŽāϰāĻž custom āĻāĻā§āϏāϏā§āĻĒāĻļāύ āϤā§āϰāĻŋ āĻāϰāĻŋ āĻāĻāĻāĻžāϰ āĻā§ āĻŦāϞ⧠āĻĻāĻŋāϤ⧠āĻĒāĻžāϰāĻŦā§ āϝ⧠āĻāĻĒāύāĻŋ āĻā§āϞ āĻāύāĻĒā§āĻ āĻĻāĻŋā§ā§āĻā§āύ āĨ¤
ÂÂÂclass FahrenheitError(Exception):min_f = 32max_f = 212Âdef __init__(self, f, *args):super().__init__(args)self.f = fÂdef __str__(self):return f‘The {self.f} is not in a valid range {self.min_f, self.max_f}’ÂÂdef fahrenheit_to_celsius(f: float) –> float:if f < FahrenheitError.min_f or f > FahrenheitError.max_f:raise FahrenheitError(f)Âreturn (f – 32) * 5 / 9f = input(‘Enter a temperature in Fahrenheit:’)try:f = float(f)except ValueError as ex:print(ex)else:try:c = fahrenheit_to_celsius(float(f))except FahrenheitError as ex:print(ex)else:print(f‘{f} Fahrenheit = {c:.4f} Celsius’)ÂāĻāĻāĻāĻĒā§āĻ
ÂÂÂEnter a temperature in Fahrenheit:10The 10.0 is not in a valid range (32, 212)
- āĻāĻŋāĻā§ āĻāĻāĻāĻžāϰāύā§āĻŽāϏāĻš āĻāĻāĻāĻŋ āϞāĻŋāϏā§āĻ āĻĨāĻžāĻāĻŦā§ āĨ¤ āĻāϰāĻĒāϰ āĻāύāϏā§āϞ āĻĨā§āĻā§ āĻāĻāĻāĻžāϰ āĻāύāĻĒā§āĻ āύāĻŋāĻŦā§āύ, āϝāĻĻāĻŋ āĻāύāĻĒā§āĻ āϏā§āĻā§āϰāĻŋāĻ āϝāĻĻāĻŋ āĻāĻĒāύāĻžāϰ āϞāĻŋāϏā§āĻā§āϰ āĻāĻāĻāĻžāϰāύā§āĻŽ āĻāϰ āϏāĻžāĻĨā§ āύāĻž āĻŽāĻŋāϞ⧠āϤāĻžāĻāϞ⧠âAlready Loginâ āĻāĻ āĻāϰāϰ āĻŽā§āϏā§āĻ āĻĻā§āĻāĻžāĻŦā§āύ āĨ¤
- āĻāĻāĻāĻŋ āĻĄāĻŋāĻāĻļāύāĻžāϰāĻŋāϤ⧠āĻā§ā§āĻāĻāĻž āĻāĻŋ āĻĨāĻžāĻāĻŦā§ ,āĻāĻŋāύā§āϤ⧠āĻāĻĒāύāĻŋ āĻāĻāĻāĻžāϰ āĻā§ āĻā§ā§āĻāĻāĻž key āĻĒā§āϰāĻŋāύā§āĻ āĻāϰāϤ⧠āĻĻāĻŋāĻŦā§āύ āύāĻž , āϝāĻĻāĻŋ āĻĒā§āϰāĻŋāύā§āĻ āĻāϰāϤ⧠āĻāĻžāύ āϤāĻžāĻāϞ⧠āĻāϰāϰ āĻĻāĻŋāĻŦā§ âSorry can not access!â
- āĻāĻāĻāĻŋ custom exception āϞāĻŋāĻāĻŦā§āύ āϝāĻž āĻŽāĻžāϧā§āϝāĻŽā§ āĻāĻāĻāĻžāϰ āĻā§ āϏāϰā§āϤāĻ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§ āϝ⧠āĻļā§āϧ⧠āĻā§ā§ āύāĻžāĻŽā§āĻŦāĻžāϰ āĻāύāĻĒā§āĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻĻā§āĻ āĨ¤ āĻāĻžāϰāĻŖ āĻāĻŽāĻžāĻĻā§āϰ āĻāĻ āĻĒā§āϰā§āĻā§āϰāĻžāĻŽ āĻā§ā§ āύāĻžāĻŽā§āĻŦāĻžāϰ āĻāϰ āĻāĻŋāĻā§ āĻŦā§āĻāĻŦā§ āύāĻžāĻš āĨ¤ āĻĻā§āĻā§āύ āĻāĻŦāĻžāϰ āĻāύāĻĒā§āĻ āϏā§āĻāĻŋāĻ āĻĻāĻŋā§ā§ āĻĻā§āĻ āύāĻžāĻš āϝā§āύ⧠āĻā§āύ āĻāĻāĻāĻžāϰ āĨ¤
- āĻāĻŽāϰāĻž āĻāĻāĻā§ āĻā§āώā§āĻāĻž āĻāϰāĻŋ āϝ⧠custom exception āĻŽāĻžāϧā§āϝāĻŽā§ āĻā§āύ āĻāĻāĻāĻžāϰ āĻ āϧāĻŋāĻŦāϰā§āώ āĻŦāĻžÂ āϞāĻŋāĻĒ āĻāϝāĻŧāĻžāϰ āĻŦāĻžāĻĻā§ āĻ āύā§āϝ āĻā§āύ āĻŦāĻāϰ āĻĻāĻŋāϞ⧠āϤāĻž āĻāĻŽāϰāĻž āĻā§āϞ āĻāύāĻĒā§āĻ āĻšāĻŋāϏāĻžāĻŦā§ āĻāĻŖā§āϝ āĻāϰāĻŦā§ āĨ¤ āĻāĻļāĻž āĻāϰāĻŋ āĻāĻŽāϰāĻž āϏāĻŦāĻžāĻ āĻāĻžāύāĻŋ āϞāĻŋāĻĒ āĻā§āĻžāϰ āĻāĻŋ ? āĻāϰ āϝāĻĻāĻŋ āύāĻž āĻāĻžāύāĻŋ āϤāĻŦā§ āĻĒā§āϰāĻŦā§āϞā§āĻŽ āύā§āĻ āĻāĻŽāϰāĻž āĻā§āĻāϞ āĻāϰ⧠āĻā§āĻŦ āϏāĻšāĻā§ āĻāĻžāύāϤ⧠āĻĒāĻžāϰāĻŦā§ āϞāĻŋāĻĒ āĻā§āĻžāϰ āĻāĻŋ āĻāĻŦāĻ āĻā§āύ āĻā§āύ āĻŦāĻāϰ āĻā§āϞ⧠āϞāĻŋāĻĒ āĻā§āĻžāϰ āĨ¤Â
- āĻāϏāϞ⧠āĻāĻŽāĻžāĻĻā§āϰ āĻ ā§āϝāĻžāϰā§āϰ āĻāĻŦāĻĻāĻžāϰ āϝ⧠āϏ⧠āĻĒā§āϰāĻžāĻāĻŽ āύāĻžāĻŽā§āĻŦāĻžāϰ āĻāĻžā§āĻž āĻāϰ āĻ āύā§āϝ āĻāĻŋāĻā§ āϤāĻžāϰ āĻāĻžāĻā§ āϰāĻžāĻāĻŦā§ āύāĻžāĻš āĨ¤ āĻāĻāύ āĻāĻŽāϰāĻž āĻāĻā§āĻāĻž āĻāϰāϞ⧠āĻ āĻ āĻ ā§āϝāĻžāϰ⧠āϤ⧠āϝāĻž āĻāĻā§āĻāĻž āϤāĻžāĻ āϰāĻžāĻāϤ⧠āĻĒāĻžāϰāĻŦā§ āĻ ā§āϝāĻžāϰ⧠āϤā§Â āĻĒāĻžāĻāĻĨāύā§āϰ āĻšāĻŋāϏāĻžāĻŦā§ āĨ¤ āĻāĻ āĻāĻžāĻ āĻāϰāϞā§Â āĻ ā§āϝāĻžāϰ⧠āĻŽā§āĻā§ āĻāĻŋāĻā§ āĻŦāϞāϤ⧠āĻĒāĻžāϰāĻŦā§ āύāĻžāĻš āĻāĻŋāύā§āϤ⧠āĻŽāύ⧠āĻŽāύ⧠āĻā§āĻŦ āĻ āĻāώā§āĻ āĻĒāĻžāĻŦā§ āĨ¤ āĻāĻŽāϰāĻž āĻāĻžāĻā§āĻāĻŋ āύāĻžāĻš āĻāĻŽāĻžāĻĻā§āϰ āĻāĻ āĻā§āĻĄ āĻ āĻ āĻ ā§āϝāĻžāϰ⧠āĻā§ āĻāώā§āĻ āĻĻā§āĻŦāĻžāϰ āĨ¤ āϤāĻžāĻ āĻāĻŽāϰāĻž custom exception āĻŽāĻžāϧā§āϝāĻŽā§ āĻā§āώā§āĻāĻž āĻāϰāĻŦā§ āϝ⧠āĻļā§āϧ⧠āĻĒā§āϰāĻžāĻāĻŽ āύāĻžāĻŽā§āĻŦāĻžāϰ āĻ āĻ āĻ ā§āϝāĻžāϰ⧠āϤ⧠āϰāĻžāĻāĻžāϰ āĻ āύā§āϝ āĻā§āύ āύāĻžāĻŽā§āĻŦāĻžāϰ āĻāϏāϞ⧠āĻ āĻ āύāĻžāĻŽā§āĻŦāĻžāϰāĻā§ āĻā§āĻ āĻāĻāĻāĻž warning āĻĻāĻŋā§ā§ pass āĻāϰ⧠āĻĻāĻŋāĻŦā§ āĨ¤Â Â
- Â
- āĻā§āϰā§āϤā§āĻŦāĻĒā§āϰā§āύ āĻĒā§āϰāĻļā§āύāϏāĻŽā§āĻš
- āĻāĻĒāύāĻŋ āϝāĻĻāĻŋ āύāĻŋāĻā§āϰ āĻā§āύ āĻāϰāϰ āĻā§āύāĻžāϰā§āĻ āĻāϰāϤ⧠āĻāĻžāύ , āϤāĻžāĻšāϞ⧠āĻā§āύ keyword āϞāĻŋāĻāϤ⧠āĻšāĻŦā§ ?
- custom exception āĻŦāϞāϤ⧠āĻāĻĒāύāĻŋ āĻāĻŋ āĻŦā§āĻā§āύ ?Â
-  custom error generate āĻāϰāĻžāϰ āϏā§āĻŦāĻŋāϧāĻž āĻāĻŋ ?
- base exception āĻā§āϞāĻžāϏ āĻāĻŦāĻ exception āĻā§āϞāĻžāϏ āĻāĻŋāϤāϰ āĻĒāĻžāϰā§āĻĨāĻā§āϝ āĻāĻŋ ?Â
- custom exception āĻŦāĻžāĻĻā§ āĻāĻŽāϰāĻž āĻ āύā§āϝ āĻā§āύ āĻāĻžāĻŦā§ āĻāϰāϰ āĻā§āϞā§āĻā§ āĻšā§āϝāĻžāύā§āĻĄā§āϞ āĻāϰāϤ⧠āĻĒāĻžāϰāĻŦā§ āĻāĻŦāĻ āĻĒāĻžāϰāϞ⧠āĻāĻŋāĻāĻžāĻŦā§ āϏāĻŽā§āĻāĻŦ ?Â