İçeriğe geç

Finally İçinde Fırlatma (ARCH3155)

Anahtar typescript.logging.throw-in-finally · Önem error · Kategori logging

finally bloğu içinde istisna fırlatmak, try gövdesinde devam eden istisnayı maskeler. Orijinal hata kaybolur ve yalnızca finally’den gelen hata yayılır.

function writeReport(file: FileHandle, data: string) {
try {
file.write(data);
} finally {
file.close(); // hata fırlatırsa try'daki istisnayı maskeler
}
}
function writeReport(file: FileHandle, data: string) {
try {
file.write(data);
} finally {
try {
file.close();
} catch (closeErr) {
logger.warn("dosya kapatılamadı", { closeErr });
}
}
}

finally içindeki temizleme kodunu kendi try/catch ile sarmalayın; hatayı yaymak yerine loglayın.