Pelacakan tumpukan pengecualian Javascript


89

Di Firefox saya bisa mendapatkan jejak tumpukan pengecualian dengan menggunakan exception.stack.

Apakah ada cara untuk mendapatkannya juga di browser lain?

Sunting: Saya sebenarnya ingin menyimpan jejak tumpukan secara otomatis (jika mungkin) dan tidak men-debugnya pada saat itu (yaitu, saya tahu cara mendapatkan jejak tumpukan dalam debugger).

Jawaban:


74

Letakkan baris ini di tempat Anda ingin mencetak jejak tumpukan:

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

Catatan: diuji oleh saya di Chrome 24 dan Firefox 18

Mungkin ada baiknya untuk melihat alat ini juga.


2
Manis - Saya menggunakan kombinasi onerror untuk mendapatkan nomor baris dan kemudian membungkus baris yang melanggar dengan mencoba menangkap dan saran Anda untuk mengingatkan stacktrace kembali ke pengguna. `window.onerror = function (message, url, lineNumber) {alert ('message:' + message + '- url:' + url + '- ln:' + lineNumber); kembali benar; }; `Kemudian bungkus untuk mencetak stacktrace. `coba {// Beberapa kode yang menyebabkan pengecualian. } catch (e) {alert (new Error (). stack); } ``
Philip Murphy

entah bagaimana mati hanya memberi saya baris pertama dari tumpukan. Apa yang saya lakukan salah ?? yaitu: function foo () {fdasmkl} coba {foo ()} catch (e) {err = new Error (e) .stack; console.log (err)} = >>> Error: ReferenceError: fdasmkl is not defined at <anonymous>:6:7bukannya"Error: ReferenceError: fdasmkl is not defined at eval (eval at <anonymous> (:6:1), <anonymous>:1:1) at <anonymous>:6:1"
chitzui

lupakan, temukan masalahnya. Karena itu sudah merupakan kesalahan, saya dapat melakukan: function foo() { fdasmkl } try { foo() } catch(e) { console.log(e.stack) }segera
chitzui


2

Jika Anda menginginkan pelacakan tumpukan string, saya akan menggunakan jawaban insin: stacktrace.js . Jika Anda ingin mengakses potongan stacktrace (nomor baris, nama file, dll) stackinfo , yang sebenarnya menggunakan stacktrace.js di bawah tenda.


0

Tidak juga, setidaknya tidak mudah.

Di IE, Anda dapat men-debug proses browser dengan MS Script Debugger (yang karena alasan tertentu merupakan komponen Office) atau Visual Studio, dan kemudian Anda dapat melihat tumpukan di breakpoint.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.