Vivasoft-logo

Custom Error Handling

āφāĻŽāϰāĻž āχāϤāĻŋāĻŽāĻ§ā§āĻ¯ā§‡Â built-in error & exception āϏāĻŽā§āĻĒāĻ°ā§āϕ⧇ āĻœā§‡āύ⧇āĻ›āĻŋ āĻāĻŦāĻ‚ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻāϏāĻŦ āĻāϰāϰ-āĻāĻ•āϏ⧇āĻĒāĻļāύ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāϤ⧇ āĻšāĻŦ⧇ āϏ⧇āϗ⧁āϞ⧋ āĻļāĻŋāϖ⧇āĻ›āĻŋāĨ¤ āϤāĻŦ⧇ , āĻŽāĻžāĻā§‡ āĻŽāĻžāĻā§‡ āφāĻŽāĻžāĻĻ⧇āϰ āύāĻŋāĻœā§‡āĻĻ⧇āϰāϕ⧇āĻ“ āĻāĻ•āϏ⧇āĻĒāĻļāύ āϤ⧈āϰ⧀ āĻ•āϰāĻž āϞāĻžāĻ—āϤ⧇ āĻĒāĻžāϰ⧇āĨ¤ āϝ⧇āĻŽāύ āϧāϰ⧇āύ , āφāĻĒāύāĻŋ āĻ•ā§āϞāĻžāϏ ā§Ģ āĻāϰ āĻŦāĻžāĻšā§āϚāĻžāĻĻ⧇āϰ āύāĻžāĻŽā§‡āϰ āϞāĻŋāĻ¸ā§āϟ āφāϛ⧇āĨ¤ āĻāĻ–āύ āĻāĻ•āϟāĻž āχāύāĻĒ⧁āϟ āĻ āχāωāϜāĻžāϰ āĻĨ⧇āϕ⧇ āύāĻžāĻŽ āĻ¨ā§‡ā§ŸāĻžāϰ āĻŦā§āϝāĻŦāĻ¸ā§āĻĨāĻž āĻ•āϰāϞ⧇āύāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āϏāĻŦ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āχ āφāĻĒāύāĻŋ āĻāĻ•āϏ⧇āĻĒā§āϟ āĻ•āϰāĻŦ⧇āύ āύāĻž, āĻļ⧁āϧ⧁ āĻŽāĻžāĻ¤ā§āϰ āĻ“āχ āĻ•ā§āϞāĻžāϏ ā§Ģ āĻāϰ āĻŦāĻžāĻšā§āϚāĻžāĻĻ⧇āϰ āύāĻžāĻŽā§‡āϰ āϞāĻŋāĻ¸ā§āϟ āĻ āϝ⧇āχāϏāĻŦ āύāĻžāĻŽ āĻ°ā§Ÿā§‡āϛ⧇ , āϤ⧇āĻŽāύ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āχ āϰāĻŋāϏāĻŋāĻ­ āĻ•āϰāĻŦ⧇āύāĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻĒāĻžāχāĻĨāύ āϤ⧋ āφāϰ āφāϞāĻžāĻĻāĻžāĻ­āĻžāĻŦ⧇ āĻ¸ā§āĻŸā§āϰāĻŋāĻ‚ āĻĒāĻžāĻ°ā§āĻĨāĻ•ā§āϝ āĻ•āϰ⧇ āύāĻŋāĻœā§‡ āĻĨ⧇āϕ⧇ āĻāĻ•āϏ⧇āĻĒāĻļāύ āĻĻāĻŋāĻŦ⧇ āύāĻžāĨ¤ āĻāχāϰāĻ•āĻŽ , āϜāĻžā§ŸāĻ—āĻž āϗ⧁āϞ⧋āϤ⧇ āφāĻŽāϰāĻž āύāĻŋāĻœā§‡āĻĻ⧇āϰ āϤ⧈āϰ⧀ āĻāĻ•āϏ⧇āĻĒāĻļāύ āĻŦā§āϝāĻŦāĻšāĻžāϰ āĻ•āϰāĻŦā§‹āĨ¤ āĻ•āĻ āĻŋāύ āϞāĻžāĻ—āϤ⧇ āĻĒāĻžāϰ⧇, āϤāĻŦ⧇ āωāĻĻāĻžāĻšāϰāĻŖ āĻĻāĻŋāϞ⧇ āĻŦā§āϝāĻžāĻĒāĻžāϰāϟāĻž āφāϰ⧋ āĻ­āĻžāϞ⧋āĻ­āĻžāĻŦ⧇ āĻĒāϰāĻŋāĻˇā§āĻ•āĻžāϰ āĻšāĻŦ⧇āĨ¤
 
 
 
def vote(age):
if age < 18:
raise ValueError(“Age should at least 18”)
print(“You can vote”)
 

 

vote āĻĢāĻžāĻ‚āĻļāύ āĻ āĻāĻ•āϟāĻž āĻĒā§āϝāĻžāϰāĻžāĻŽāĻŋāϟāĻžāϰ āϰāĻžāĻ–āĻ›āĻŋ , āϝ⧇āĻ–āĻžāύ⧇ ā§§ā§Ž āĻāϰ āύāĻŋāĻšā§‡ āϕ⧋āύ āĻ­ā§āϝāĻžāϞ⧁ āφāϏāϞ⧇ , ValueError āĻĻāĻŋāĻŦ⧇, āĻ•āĻŋāĻ¨ā§āϤ⧁ āĻāϰāϰ āĻŽā§‡āϏ⧇āϜ (Age should at least 18) āĻšāĻŦ⧇ āφāĻŽāĻžāĻĻ⧇āϰ āĻœā§‡āύāĻžāϰ⧇āϟ āĻ•āϰāĻž āĨ¤ āĻāĻ­āĻžāĻŦ⧇āĻ‡Â custom error raise āĻ•āϰ⧇ āĨ¤
 
 

āφāĻŦāĻžāĻ°Â ValueError āĻāĻ•āϟāĻž āĻŦāĻŋāĻ˛ā§āϟ-āχāύ āĻāĻ•ā§āϏāϏ⧇āĻĒā§āϏāύāĨ¤ āφāĻŽāϰāĻž āϚāĻžāχāϞ⧇ āύāĻŋāĻœā§‡āĻĻ⧇āϰ āϤ⧈āϰ⧀ (custom) āĻāĻ•ā§āϏāϏ⧇āĻĒāĻļāύ āĻĻ⧇āĻ–āϤ⧇ āĻĒāĻžāϰāĻŋāĨ¤ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āĻ•āϰāĻŦā§‹ , āϤāĻžāϰ āĻāĻ•āϟāĻŋ āύāĻŽā§āύāĻž āϕ⧋āĻĄ āύāĻŋāĻšā§‡ āĻĻ⧇āĻ–āĻž āϝāĻžāĻ• āĨ¤

 
 
 
# Create an empty class that would inherit any of the buil-in Exception
class custom_exception(ValueError):
pass
 
 
def vote(age):
try:
if(age<18):
raise custom_exception(“Can not vote”)
print(“You can vote”)
except custom_exception as e:
print(e)
 
 
vote(25)
vote(11)
 

āφāωāϟāĻĒ⧁āϟ

 
 
 
You can vote
Can not vote
 

 

āϖ⧁āĻŦāχ āϏāĻšāϜāĨ¤ āĻļ⧁āϧ⧁ āĻŽāĻžāĻ¤ā§āϰ āĻāĻ•āϟāĻŋ āĻ•ā§āϞāĻžāϏ āϤ⧈āϰ⧀ āĻ•āϰāĻŦā§‹ , āϝ⧇āϟāĻŋ āĻŦāĻŋāĻ˛ā§āϟ-āχāύ āϕ⧋āύ āĻāĻ•ā§āϏāϏ⧇āĻĒā§āϏāύ āϕ⧇ āχāύāĻšā§‡āϰāĻŋāϟ āĻ•āϰāĻŦ⧇ ( āφāĻŽāϰāĻž āĻāĻ–āĻžāĻ¨ā§‡Â ValueError āϕ⧇ āχāύāĻšā§‡āϰāĻŋāϟ āĻ•āϰ⧇āĻ›āĻŋ ) . āĻāϰāĻĒāϰ ā§Ž āύāĻžāĻŽā§āĻŦāĻžāϰ āϞāĻžāχāύ⧇ , āφāĻŽāĻžāĻĻ⧇āϰ āĻāĻ•ā§āϏ⧇āĻĒāĻļāύ āϰ⧇āχāϜ āĻ•āϰ⧇āĻ›āĻŋāĨ¤
  • āωāĻĻāĻžāĻšāϰāĻŖ ā§§- 

    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: -30
    You 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 = salary
    self.message = message
    super().__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: 25You will get match details soon by email!!!

     

    āωāĻĻāĻžāĻšāϰāĻŖ ā§Ģ –

    āφāĻŽāϰāĻž āĻāĻ–āύ āĻāĻ•āϟāĻŋ āϤāĻžāĻĒāĻŽāĻžāĻ¤ā§āϰāĻž āĻ•ā§āϝāĻžāϞāϕ⧁āϞ⧇āϟ āĻ•āϰāĻžāϰ āĻĢāĻžāĻ‚āĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰāĻŦā§‹Â  āϝāĻž āĻĻāĻŋā§Ÿā§‡ āφāĻŽāϰāĻž āĻĢāĻžāϰ⧇āύāĻšāĻžāχāϟ āĻĨ⧇āϕ⧇ āϏ⧇āϞāϏāĻŋāϝāĻŧāĻžāϏ āĻ āĻ•āύāĻ­āĻžāĻ°ā§āϟ āĻ•āϰāĻŦā§‹Â  āĨ¤ āĻ•āĻŋāĻ¨ā§āϤ⧁ āφāĻŽāϰāĻž āϜāĻžāύāĻŋ āϝ⧇ āĻĢāĻžāϰ⧇āύāĻšāĻžāχāϟ āϰ⧇āĻœā§āĻž ā§Šā§¨- ⧍⧧⧍ āĻ­āĻŋāϤāϰ āĻĨāĻžāϕ⧇ āĨ¤ āĻāϰ āĻŦāĻžāχāϰ⧇ āχāύāĻĒ⧁āϟ āĻĻāĻŋāϞ⧇ āφāĻŽāϰāĻž custom āĻāĻ•ā§āϏāϏ⧇āĻĒāĻļāύ āϤ⧈āϰāĻŋ āĻ•āϰāĻŋ āχāωāϜāĻžāϰ āϕ⧇ āĻŦāϞ⧇ āĻĻāĻŋāϤ⧇ āĻĒāĻžāϰāĻŦā§‹ āϝ⧇ āφāĻĒāύāĻŋ āϭ⧁āϞ āχāύāĻĒ⧁āϟ āĻĻāĻŋā§Ÿā§‡āϛ⧇āύ āĨ¤

     
     
     
    class FahrenheitError(Exception):
    min_f = 32
    max_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 / 9
    f = 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:10
    The 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 āĻŦāĻžāĻĻ⧇ āφāĻŽāϰāĻž āĻ…āĻ¨ā§āϝ āϕ⧋āύ āĻ­āĻžāĻŦ⧇ āĻāϰāϰ āϗ⧁āϞ⧋āϕ⧇ āĻšā§āϝāĻžāĻ¨ā§āĻĄā§‡āϞ āĻ•āϰāϤ⧇ āĻĒāĻžāϰāĻŦā§‹ āĻāĻŦāĻ‚ āĻĒāĻžāϰāϞ⧇ āĻ•āĻŋāĻ­āĻžāĻŦ⧇ āϏāĻŽā§āĻ­āĻŦ ?Â