Это может быть не лучшим решением. Единственное исключение состоит в том, что вы можете поймать их на совершенно ином уровне, чем он поднят. Лучше обращаться с ними там, где у вас достаточно информации, чтобы сделать что-то полезное с ними (это очень зависит от приложения и контекста).
Например, приведенный ниже код может выдать IOError («[Errno 2] Нет такого файла или каталога»):
def read_data(filename):
return open(filename).read()
В этой функции у вас недостаточно информации, чтобы что-то с ней сделать, но там, где вы фактически используете эту функцию, в случае такого исключения вы можете решить попробовать другое имя файла или отобразить ошибку для пользователя, или что-то еще:
try:
data = read_data('data-file.txt')
except IOError:
data = read_data('another-data-file.txt')
# or
show_error_message("Data file was not found.")
# or something else