×

Raise Exception in Python

Most of the programmers/developers create large programs to solve complex tasks in Python. The code can be of 1000 lines and even more based on the need of the problem. After writing a huge code, imagine running into an unexpected error in the middle and not being able to find where the code is going wrong. These unexpected errors caught at the run time and disturb the program flow are called Exceptions. Although, Exceptions are like villains in this story, there is a need for exceptions too. In Python, we can handle these exceptions using the try-except statements.

Let us take an example. What if the user gives an invalid input like 0 for a divisor? Division with 0 is not possible. By raising an exception, Python tells us to handle the program if the user gives the invalid input. These exceptions are inbuilt in Python. For example, we are writing a code in which the user should not give the input as 5. If given, it raises a bug. No inbuilt exception stops the program from raising an exception if the input is 5. No worries, we can raise our custom exceptions and later handle them the way we want.

Python never leaves the user dissatisfied. There are ways open to trying out different paths to reach a solution. This article will discuss how to create and raise our custom exceptions in Python.

raise Keyword

We add a condition into the inbuilt set of exception conditions. There is a keyword in Python called "raise" to raise our exceptions. We can demand an exception to occur in a specific situation using this keyword.

Syntax:

raise {exception_we_want_to_raise}

We can also print a message by:

raise Exception_name (“message to display”)

Let us take an example:

a = int (input ("Enter a non-zero number: "))
if (a == 0):
    raise Exception ("Not zero please!")

Output:

Enter a number: 0
Traceback (most recent call last):
  File "D:\Programs\Python\untitled0.py", line 10, in <module>
    raise Exception ("Not zero please!")
Exception: Not zero please!

Understanding:

We asked for a non-zero number, but we raised an Exception if the user gave the input as 0.

  • We used the Exception class because; it is the superclass for exceptions. We can raise any exception we want.
  • We can raise a TypeError in the above case, but generally, a TypeError is raised when the given value's data type does not match its slot. Our situation is not this in the above program.

Raising a TypeError:

a = "Hey"
if (type (a) is not int):
    raise TypeError ("Only int permitted")

Output:

Traceback (most recent call last):
  File "D:\Programs\Python\untitled0.py", line 10, in <module>
    raise TypeError ("Only int permitted")
TypeError: Only int permitted

Understanding:

a is a string with "Hey". But we don't want it to be a string. We need a to be an integer. Hence, we checked the type of a and raised a TypeError if it is not an integer.

Handling the raised exceptions:

Raising an exception alone is not enough to handle an exceptional situation. The program raises the exception and stops there. We need to handle the exception that we raised to get the program going.

#Handling a TypeError:
a = "Hey"
try:
    if (type (a) is not int):
        raise TypeError ("Only int permitted")
except TypeError:
    print ("a must be an integer")

Output:

a must be an integer
  • Suppose we raise an exception if the user gives the number 5; if we do not handle it, when 5 is given, the program will raise an exception and stop there, which is not what we want. We need to do something like ask the user again not to give 5 as the input. We need to use the try-except statements to handle the exceptions.
a = int (input ("Enter an integer except 5: "))
try:
    if (a == 5):
        raise Exception ("Not 5!")
except Exception:
    print ("Please don't enter 5")
    a = int (input ("Enter an integer: "))

Output:

Enter an integer except 5: 5
Please don't enter 5


Enter an integer: 4
  • Specifying the exception class is not compulsory in the syntax of raise. We can say raise. Using a simple raise without giving the exception name raises the last raised exception again.
  • In the above program, we raised an exception if the user gives input as 5. We handled the exception by asking for the input again. We can say raise to raise the same exception if the user gives 5 again:
a = int (input ("Enter an integer except 5: "))
try:
    if (a == 5):
        raise Exception ("Not 5!")
except Exception:
    print ("Please don't enter 5")
    a = int (input ("Enter an integer: "))
    raise

Output:

Enter an integer except 5: 5
Please don't enter 5
Enter an integer: 5
Traceback (most recent call last):
  File "D:\Programs\Python\untitled0.py", line 12, in <module>
    raise Exception ("Not 5!")
Exception: Not 5!

Advantages of using raise:

  1. Using raise is most useful to check the given input according to the program's need.
  2. When the programmer has to handle a specific situation in the program and wants to do it later, he can raise an exception and handle it with a message to remind him to handle it – like the pass statement.

Summary

  • You might have observed that most of the time, you want to raise an exception; there is no certain exception that matches as per needs. Hence, you can use the superclass – Exception.
  • What if we name the exception with the name we want? But such exceptions will not be valid as they are not in-built.
  • There is still a solution. We can also create our own exceptions in Python. We can specify the exception we created after the raise keyword; it even increases the readability of the code.
  • Here is a simple example:
class ValueLessThan100 (Exception):
    pass
a = int (input ("Enter a number greater than 100: "))
try:
    if (a < 100):
        raise ValueLessThan100
except ValueLessThan100:
    print ("The given value is less than 100")
    a = int (input ("Enter an integer greater than 100: "))
    if (a < 100):
        raise

Output:

Enter a number greater than 100: 35
The given value is less than 100


Enter an integer greater than 100: 67
Traceback (most recent call last):
  File "D:\Programs\Python\untitled0.py", line 14, in <module>
    raise ValueLessThan100
ValueLessThan100

Understanding:

In above code, we don't want the input by the user to be less than 100. We created a custom exception, "ValueLessThan100". We took the input from the user. If the user gives 100, we raised the exception, handled it with a message, and asked for another input. Still, if the user gives a number less than 100, we re-raised our exception.

  • You can see that the name of the exception is quite enough to understand what went wrong in the program, thus, increasing the readability of the code.

Related Topics

*Args and **Kwargs in Python

Let’s know about ** (dual star / asterisk) and * (star / asterisk) are operators in Python. These stars are used in Python for parameters. Args and kwargs are special...

3 minutes read.

Returning Multiple Values in Python

Python is considered a general-purpose programming language; it is a high-level programming language that is not much difficult and easier to learn. It is rich in libraries that can be...

3 minutes read.

Python list() | List class in Python

The list() class in Python creates a list object where the list object is a collection which is ordered and changeable. Syntax class list([iterable]) Parameter Iterable: It is a required parameter which represents a sequence, collection...

1 minute read.

Latest Project Ideas using Python 2024

Python is one of the well-known languages for programming in the contemporary domain of computer science. The demand to adopt Python for IT purposes is steadily increasing because of its...

7 minutes read.

How to Install Tweepy in Python

In this article, we will learn or understand how to install Tweepy in Python and what Tweepy is. Firstly, let’s understand What Tweepy is. As we all know, one of the...

3 minutes read.

Shallow Copy and Deep Copy in Python

Shallow Copy and Deep Copy in Python In this section, we will learn about the Shallow Copy and Deep Copy in the Python program. But before going through the topic, we...

6 minutes read.

Python EOL (End Of Line)

Introduction An EOL (End Of Line) is defined as a syntax error that indicates that the Python interpreter reached at the end of the line when it tried to scan a...

3 minutes read.

Python Project Ideas Based On Django

Introduction If you have learned Python and you are an expert in Django, then your practical skills should be excellent in this field. If you want to check your practical skills,...

9 minutes read.

Python map() function

Python map() function The map() function in Python returns an iterator that applies a function to every item of iterable, yielding the results. Syntax map(function, iterable, ...) Parameter function: It is a required parameter that represents the function to...

1 minute read.

End Parameter in python

print(): The python print() function prints the program’s output to the output screen. The output can be an integer value, string value or other value. Syntax: print(“hi”) Output: hi will be displayed on the output...

3 minutes read.

How To Compare Two Strings In Python

In this article, we will discuss how to compare two strings in Python. So, before that, let’s have a quick revision on “What are strings?” Strings are a sequence of characters that...

5 minutes read.

How to Program in Python on Raspberry pi?

Introduction to Python A popular programming tool with simple, complete novice syntax is Python structure of paragraphs, phrases, and words. Due to its widespread use, this has a large community that...

4 minutes read.

Python bool()

Python bool() class The bool() class in Python returns the boolean value for the specified object. Syntax class bool([x]) Parameter object: This parameter represents the object, like String, List, Number etc. Return It will always return True, except...

1 minute read.

Python String isalnum() method

Python String isalnum() method The string.isalnum () method in Python returns a boolean value true if all characters in the string are alphanumeric else for any other value it returns false. Syntax String.isalnum() Parameter NA Return This...

1 minute read.

Python MySQL Delete Operation

Python MySQL Delete Operation: Like the update operation where we were updating required field from a SQL table, we can also delete an entry from the table which we have...

4 minutes read.

Python exe() function

Python exe() function The exec() function in Python executes the specified Python code and accepts large blocks of code. It supports dynamic execution of Python code where the object must be either a string...

1 minute read.

Python random.seed() function

The random module in Python produces a random number or pseudo-random data, that is, deterministic. The seed function records the state of a random function to provide the same random...

6 minutes read.

Python Tkinter Tutorial

What is Tkinter? Tkinter is GUI library of Python. When we integrated Tinkter with Python, it provides an easy and quick way to develop GUI applications. It provides the Tk GUI...

14 minutes read.

Check whether dir is empty or not in python

Python: Check if a directory is empty In this tutorial, we will study how to check whether the director (dir) is empty or not in the python programming language. First of...

3 minutes read.

Python Num2words

Python: Python programming language is one of the most used programming languages, as it is used widely in the field of software and data analysis, web development, etc. It is said...

3 minutes read.