ValueError handling in Python

In Python, when an error occurs during the execution of code, it is referred to as an exception. Python includes a number of built-in exceptions such as SyntaxError, NameError, ValueError, etc. and the try-except block can be used to handle exceptions.

What is ValueError?

ValueError occurs when a correct argument type but an incorrect value is passed to a function. It typically occurs in mathematical operations that require a specific type of value.

import math

print(math.sqrt(100))
print(math.sqrt(-100))

Program output:

10.0
ValueError: math domain error

As shown in the program output, ValueError exception is raised as in mathematics we cannot take the square root of a negative number.

Using Try-Except block to handle ValueError

The ValueError exception can be handled by putting your code between the try and except block. If an exception occurs during the execution of code, it will be thrown by try block and the except block will get executed.

import math
try:
    print(math.sqrt(-100))
except ValueError as ve:
    print('ValueError ::',ve)

Program output:

ValueError :: math domain error

Raising ValueError in a function

import math

def get_sqr_root(num):
    if num < 0:
        raise ValueError('Numbers must be positive')
    return math.sqrt(num)

print(get_sqr_root(100))
print(get_sqr_root(-100))

Program output:

10.0
ValueError: Numbers must be positive

In the above example, the correct argument type but an incorrect value is passed so ValueError is raised.

Ajinkya Chikhale

Ajinkya Chikhale

Software Engineer
Pune