Javascript istisna yığını izleme


90

Firefox'ta bir istisnanın yığın izini şu şekilde elde edebilirim: exception.stack .

Bunu diğer tarayıcılarda da almanın bir yolu var mı?

Düzenleme: Aslında yığın izlemeyi otomatik olarak kaydetmek (mümkünse) ve o sırada hata ayıklamak istemiyorum (yani bir hata ayıklayıcıda yığın izlemeyi nasıl elde edeceğimi biliyorum).

Yanıtlar:


75

Bu satırı yığın izlemesini yazdırmak istediğiniz yere yerleştirin:

console.log(new Error().stack);

Not: Chrome 24 ve Firefox 18'de benim tarafımdan test edildi

Bu araca da bir göz atmaya değer olabilir .


2
Tatlı - Satır numarasını almak için bir hata kombinasyonu kullanıyorum ve ardından rahatsız edici satırı bir deneme yakalama ve yığın izini kullanıcıya geri bildirmek için öneriniz ile sarıyorum. `window.onerror = function (message, url, lineNumber) {alert ('message:' + message + '- url:' + url + '- ln:' + lineNumber); doğruya dön; }; Ardından, yığın izini yazdırmak için sarın. `{// İstisnaya neden olan bazı kodları deneyin. } catch (e) {alert (yeni Hata (). yığın); } ``
Philip Murphy

bir şekilde ölür bana yığının sadece ilk satırını verir. Neyi yanlış yapıyorum?? yani: function foo () {fdasmkl} deneyin {foo ()} catch (e) {err = new Error (e) .stack; console.log (err)} = >>> Error: ReferenceError: fdasmkl is not defined at <anonymous>:6:7yerine"Error: ReferenceError: fdasmkl is not defined at eval (eval at <anonymous> (:6:1), <anonymous>:1:1) at <anonymous>:6:1"
chitzui

boşver, sorunu buldum. Zaten bir hata olduğu için şunu yapabilirim: function foo() { fdasmkl } try { foo() } catch(e) { console.log(e.stack) }hemen
chitzui


2

Dize yığın izlemesini istiyorsanız, insin'in cevabı olan stacktrace.js ile giderim . Bir yığın izleme parçalarına (satır numaraları, dosya adları, vb.) Erişmek istiyorsanız, aslında başlık altında stacktrace.js kullanan yığın bilgisi .


0

Gerçekten değil, en azından kolay değil.

IE'de, tarayıcı işleminin hatalarını MS Script Debugger (herhangi bir nedenle bir Office bileşenidir) veya Visual Studio ile ayıklayabilir ve ardından yığını kesme noktalarında görebilirsiniz.


0

Tüm büyük tarayıcılarda işlenmemiş JavaScript istisnaları için yığın izleri oluşturmaya çalışan iyi bir açık kaynak kitaplığı TraceKit'i denemelisiniz . Tracekit hakkında daha fazla bilgi edinebilirsiniz

https://github.com/csnover/TraceKit/

Not : İyi kullanıcı arayüzüne sahip bir servis (Tracekit kullanarak) arıyorsanız, Atatus'u deneyebilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.