SORU
17 EYLÜL 2010, Cuma


Nasıl Javascript bir istisna yeniden oluşturma, ama yığın koruyabilir miyim?

Javascript, bir özel durum olduğunda bazı temizleme gerçekleştirmek istiyorum, ama istisna yaymak için devam edelim yığın örnek: varsayalım

try {
  enterAwesomeMode();
  doRiskyStuff(); // might throw an exception
} catch (e) {
  leaveAwesomeMode();
  throw e;
}
doMoreStuff();
leaveAwesomeMode();

Sorun bu kodu yakalamak ve rethrowing özel durum neden olur yığın izleme bilgileri için bu noktaya kayıp, böylece eğer durum daha sonra tekrar yakalandı, daha yukarı, yığın, yığın izleme yalnızca iner için yeniden atmak. Bu aslında bir istisna attı bu fonksiyonu içermiyor demektir, çünkü gerçekten berbat.

Olarak çıkıyor, deneyin..son olarak aynı davranış, en azından Chrome (değil yeniden atmak sorunu kesin, ama bu durum herhangi bir özel durum işleyici bloğu.)

Herkes Javascript bir istisna yeniden oluşturma ama korumak için bir yol biliyor izleme ile ilişkili yığını mı? O da olmazsa, nasıl da tam çekilirken özel durum-güvenli temizlik işleyicileri eklemek için başka yollar için öneriler hakkında bir özel durum olduğunda yığın izlemelerini?

Herhangi bir tavsiye :) için teşekkürler

CEVAP
13 Aralık 2010, PAZARTESİ


Bu Chrome bir hata değildir. Bir istisna Rethrowing çağrı Izleme korumak gerekir.

http://code.google.com/p/chromium/issues/detail?id=60240

Herhangi bir çözüm bilmiyorum.

Nihayet sorun görmüyorum. Sessizce hata bazı durumlarda, konsola gelmemesi bir nihayet sonra özel durumlar görüyorum, ama bu bir gelişme yapılarında sabit gibi görünüyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Barnacules Nerdgasm

    Barnacules N

    20 Temmuz 2006
  • MarinaHD2001

    MarinaHD2001

    7 ŞUBAT 2009
  • martin shervington

    martin sherv

    7 EKİM 2011