Python Print Exception with Program Examples

This tutorial will help you acquire skills which is how to print exception in python with the help of examples.

How to catch and print exceptions in python?

An exception is an event that halts the execution of a Python program. Exceptions in Python include ZeroDivisionError and IndexError.

By capturing an exception and reporting it, the program operation will not be halted while the error received during execution is displayed.

Also read: Python Ceiling Method with Examples 

Example 1

try:
    a = 1/0

except Exception as e:
    print(e)

Output

division by zero

Example 2

try:
    l = [1, 2, 3]
    l[4]

except IndexError as e:
    print(e)

Output

list index out of range

Place the code that may throw an exception in a try block. To catch a particular exception, replace the Exception with the exception’s name.

Make an except block right after the try block with the line except Exception as e. This will enable you to learn how to handle any errors that occur. The object e can also print the error.

Catch and Print IndexError

Python will throw an IndexError if you attempt to access the list element with index 100 while the list contains only three elements. This error indicates that the list index is out of range.

Example

try:

  name = ['Jane', 'John', 'Jay']
    
  print(name[3])

except Exception as e:

  print(e)

You wrapped the function in a try/catch block and then displayed the exception, but the program is not shut down. Therefore, the final print() statement is executed after the exception has been handled.

This is the result of the print function that is on the previous line of code.

Output

list index out of range

Catch and Print ValueError

The ValueError occurs if you attempt to utilize incorrect values in certain functions. Here’s an instance where the ValueError is thrown when the square root of a negative value was attempted to be calculated:

Example

import math
try:

  a = math.sqrt(-2)

except Exception as e:
    
  print(e)

Output

math domain error

You can also explore more on Python print exception ValueError with Python ValueError Exact Solution.

Catch and Print TypeError

If you use indexing with the square bracket notation on an object that is not indexable, Python will throw a TypeError because the object is not subscribable. If the object does not define the __getitem__() method, this is the case.

Example

try:
    
variable = None
    
print(variable[0])

except Exception as e:
    
print(e)

Output

'NoneType' object is not subscriptable

Python Exceptions

Exceptions are events that occur during the execution of a program that interrupts the normal flow of instructions. When a Python script reaches a scenario it cannot handle, it typically raises an exception. The exception object in Python describes an error.

Even though a statement or phrase is syntactically correct, attempting to execute it may result in an error. Exceptions are errors identified during execution, and they are not necessarily deadly. Most exceptions, on the other hand, are not handled by programs and lead to the following error messages:

Example (ZeroDividionError)

10 * (1/0)

Output

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    10 * (1/0)
ZeroDivisionError: division by zero

Example (NameError)

 4 + spam*3

Output

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'spam' is not defined

Example (TypeError)

 '2' + 2

Output

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can only concatenate str (not "int") to str

The final line of an error message describes what occurred. The exception type is printed as part of the message.

In the example, the exception types are ZeroDivisionError, NameError, and TypeError. The text displayed as the exception type corresponds to the name of the built-in exception that occurred.

This is true for all built-in exceptions, but not necessarily for user-defined ones (although it is a useful convention). Standard exception names serve as innate identifiers (not reserved keywords).

The information on the rest of the line depends on the type of exception and what caused it.

The previous section of the error message provides the exception’s context in the form of a stack traceback. Usually, the stack traceback shows lines from the source code, but it doesn’t show lines from the standard input.

Exception handling in python

Programming exceptions are conceivable. The following example prompts the user for input until a valid integer is entered, but allows the user to interrupt the application. A user-generated interruption raises the KeyboardInterrupt exception.

Example

while True:

  try:

    x = int(input("Please enter a number: "))

    break

  except ValueError:

    print("Oops!  That was no valid number.  Try again...")

Output

Please enter a number: Oops!  That was no valid number.  Try again...
Please enter a number: 
Traceback (most recent call last):
  File "main.py", line 5, in <module>
    x = int(input("Please enter a number: "))
EOFError: EOF when reading a line

Here’s how the try function works:

  • First, the try clause (statement(s) between try and except) run time.
  • If no exception occurs, the try statement ends.
  • The rest of the try clause is bypassed if an exception occurs. The except clause is run if the exception type matches the except keyword. Then the execution continues after the try/except block.
  • Unlisted exceptions are sent to outer try statements. In the handler is absent, the application quits with the above message.

A try statement may have multiple except clauses to define distinct exception handlers. However, the statement only executes one handler at most.

Python Handlers only handle exceptions that occur within their respective try clause and not within other handlers of the same try statement. An except clause may provide numerous exceptions as a comma-separated tuple.

Example

except (RuntimeError, TypeError, NameError):

    pass

How to raise exceptions in python?

The raise statement enables the programmer to command the occurrence of a specific exception.

Example

raise NameError('HiThere')

Output

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: HiThere

The exception to be raised is indicated by the lone argument “raise“. This must be either an instance of an exception or a class that inherits from the Exception base class. If an exception class is passed, its constructor will be implicitly constructed with no arguments.

Example

raise ValueError

Python chained exceptions

The raise statement supports an optional parameter, which enables exception chaining.

Example

raise RuntimeError from exc

Note: The exc must be exception instance or None for syntax purposes.

Chaining is beneficial when transforming exceptions.

Example

def func():

  raise ConnectionError

try:

  func()

except ConnectionError as exc:

  raise RuntimeError('Failed to open database') from exc

Output

Traceback (most recent call last):
  File "main.py", line 7, in <module>
    func()
  File "main.py", line 3, in func
    raise ConnectionError
ConnectionError

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "main.py", line 11, in <module>
    raise RuntimeError('Failed to open database') from exc
RuntimeError: Failed to open database

User-defined exception in python

Programs can name their exceptions by defining a new class. Exceptions should stem directly or indirectly from the exception.

Exception classes can do anything that any other class can do, but they are usually minimal and only show a few properties that handlers can use to figure out what went wrong.

Most exceptions finish in “Error,” like standard exceptions. Many standard modules define exceptions for functions they define. By default, classes contain more information.

Summary

In summary, Python contains some built-in exceptions that pop up when an error occurs.

When these exceptions occur, the Python interpreter terminates the current process and transfers control to the process that raised the exception.

The Python print exception waits until it is handled, and without intervention, the program will crash.

Leave a Comment