The **ValueError** **exception** in **Python** is raised when the method receives the argument of the correct data type but an inappropriate value. The associated value is a string giving details about the data type mismatch.

**Example**

```
import math
math.sqrt(-10)
```

**Output**

`ValueError: math domain error`

As you can see that we got the **ValueError:** **math domain error.**

**How to fix the ValueError Exception in Python**

To fix the ValueError exception, use the try-except block. The **try block** lets you test a block of code for errors. The **except block** enables you to handle the error.

```
import math
data = 64
try:
print(f"Square Root of {data} is {math.sqrt(data)}")
except ValueError as v:
print(f"You entered {data}, which is not a positive number")
```

**Output**

`Square Root of 64 is 8.0`

Now, let’s assign the negative value to the data variable and see the output.

```
import math
data = -64
try:
print(f"Square Root of {data} is {math.sqrt(data)}")
except ValueError as v:
print(f"You entered {data}, which is not a positive number")
```

**Output**

`You entered -64, which is not a positive number`

You can see that our program has raised the **ValueError **and executed the except block.

That’s it.