With that said, we still have the problem of what to do with our empty except block. The solution arrives in the form of the pass keyword, which is a special statement that does precisely nothing! It's a no-op, and it's only purpose is to allow us to construct syntactically permissible blocks that are semantically empty:
def convert(s):
"""Convert a string to an integer."""
x = -1
try:
x = int(s)
except (ValueError, TypeError):
pass
return x
In this case though, it would be better to simplify further by using multiple return statements, doing away with the x variable completely:
def convert(s):
"""Convert a string to an integer."""
try:
return int(s)
except (ValueError, TypeError):
return -1