Javascript'te, bir istisna meydana geldiğinde biraz temizlik yapmak istediğimi, ancak istisnanın yığını yaymaya devam etmesine izin verdiğimi varsayalım, örneğin:
try {
enterAwesomeMode();
doRiskyStuff(); // might throw an exception
} catch (e) {
leaveAwesomeMode();
throw e;
}
doMoreStuff();
leaveAwesomeMode();
Bu kodla ilgili sorun, istisnayı yakalamanın ve yeniden atmanın, o noktaya kadar yığın izleme bilgilerinin kaybolmasına neden olmasıdır, böylece istisna daha sonra tekrar yakalanırsa, yığında daha yukarılarda, yığın izleme yalnızca yeniden -atmak. Bu berbat çünkü aslında istisnayı atan işlevi içermediği anlamına geliyor.
Görünüşe göre, try..finally aynı davranışa sahip, en azından Chrome'da (yani, sorun tam olarak yeniden atma değil, herhangi bir istisna işleyici bloğunun varlığıdır.)
Javascript'te bir istisnayı yeniden atmanın ancak bununla ilişkili yığın izini korumanın bir yolunu bilen var mı? Başarısız olursa, istisna korumalı temizleme işleyicileri eklemenin diğer yolları için önerilere ne dersiniz?
Herhangi bir işaretçi için teşekkürler :)