Bir özel imleç sınıfındaki bir __exit__
bloğu içinden bir istisna yakalamak istiyorum, böylece daha özel bir istisna atabilirim. Bunu yapmanın doğru yolu nedir? __exit__
bloğu içinde belirli istisna RaisingBir python içinden bir istisnayı yeniden atayın __exit__ block
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
kesmek gibi görünüyor, ama belki bunu düşünerek aştım.
Neden özel durumu kaldırmak için bir kesmek gibi görünüyor? – NPE
İçerik yöneticisi ana bloktaki herhangi bir özel durumu yakaladığından, depoladığından ve onaylamak veya veto etmek için __exit__ biçimine geçirdiğinden bunu yapmanın başka bir yolu olabileceğini düşündüm. __exit__ içinde yükselmek onun argümanlarına dayanan sorumluluklarının genişlemesinin daha çok olacağı gibi görünüyordu - ama ben bunu açıkça düşündüm. – jpredham