İçeriğe geç

Finally İçinde Yükseltme (ARCH2155)

Anahtar python.logging.raise-in-finally · Önem error · Kategori logging

finally bloğu içinde istisna yükseltmek, try gövdesinde halen yayılmakta olan istisnayı maskeler. Asıl arıza kaybolur ve yerine finally’deki ikincil hata geçer.

def write(path, data):
f = open(path, "w")
try:
f.write(data)
finally:
f.close()
raise RuntimeError("cleanup done")
def write(path, data):
f = open(path, "w")
try:
f.write(data)
finally:
f.close()

finally bloğunu yalnızca temizlik için kullanın; istisna yükseltmesini try/except gövdesine taşıyın.