A ValueError is used when a function receives a value that has the right type but an invalid value.
The given code can be rewritten as follows to handle the exception and find its type.
Example
import sys
try:
n = int('magnolia')
except Exception as e:
print e
print sys.exc_typeOutput
invalid literal for int() with base 10: 'magnolia' <type 'exceptions.ValueError'>