Изнутри блока __exit__
в пользовательском классе курсора я хочу поймать исключение, поэтому я могу в свою очередь бросить более конкретное исключение. Каков правильный способ сделать это?
class Cursor:
def __enter__(self):
...
def __exit__(self, ex_type, ex_val, tb):
if ex_type == VagueThirdPartyError:
# get new more specific error based on error code in ex_val and
# return that one in its place.
return False # ?
else:
return False
Поднятие конкретного исключения в блоке __exit__
кажется взломанным, но, возможно, я об этом думаю.