Rumah > hujung hadapan web > tutorial js > memerintahkan untuk Nyahpepijat 'Ralat Senyap' dalam JavaScript

memerintahkan untuk Nyahpepijat 'Ralat Senyap' dalam JavaScript

Susan Sarandon
Lepaskan: 2024-12-21 04:21:10
asal
767 orang telah melayarinya

ommands to Debug “Silent Errors” in JavaScript

Dengan kesilapan senyap di sini saya maksudkan sebarang isu tidak menghasilkan sebarang petunjuk yang boleh dilihat.

Beberapa contoh yang paling biasa:

  1. Blok Tangkapan Hilang
  2. Janji Jangka Panjang
  3. Syarat Perlumbaan Negeri Dikongsi
  4. Pendengar Acara yang Salah

Mari kita fahami satu persatu secara terperinci dan cara menyahpepijatnya:


#1: Menyahpepijat Blok Tangkapan Hilang

Ralat ini berlaku apabila anda terlepas melampirkan pengendali .catch() pada janji anda. Akibatnya apabila janji itu ditolak, ralat tidak muncul.

Anda boleh nyahpepijat ralat ini dengan menjalankan kod anda dengan hujah penolakan yang tidak dikendalikan. Ia memaksa nod untuk menamatkan proses pada penolakan janji yang tidak dikendalikan, menjadikan ralat itu jelas.

node --unhandled-rejections=strict script.js
Salin selepas log masuk

#2: Nyahpepijat Janji Jangka Panjang

Adakah anda terjumpa kod Node.js yang:

  • Tidak pernah selesai
  • Memakan memori yang berlebihan dari semasa ke semasa

Jika ya, kemungkinan besar ia disebabkan oleh janji yang tidak dapat diselesaikan atau gelung tidak terhingga di suatu tempat.

Anda boleh mengesahkan isu dengan mengehadkan masa pelaksanaan skrip seperti yang dilakukan di bawah:

timeout 10s node script.js || echo "Warning: Unresolved promise or infinite loop detected"
Salin selepas log masuk

#3: Nyahpepijat Syarat Perlumbaan Negeri Dikongsi

Keadaan Perlumbaan Negeri Dikongsi berlaku apabila berbilang panggilan balik mengakses keadaan dikongsi secara serentak.

Disebabkan keadaan perlumbaan, program ini menghasilkan hasil yang tidak dapat diramalkan menyebabkan ketidakkonsistenan data tanpa gejala yang kelihatan semasa ujian.

Namun nasib baik nod sebenarnya menyediakan pilihan jejak-async-cangkuk untuk mengenal pasti corak pelaksanaan sedemikian.

node --trace-async-hooks script.js 2>&1 | grep "asyncId"
Salin selepas log masuk

#4: Menyahpepijat Pendengar Acara Salah

Akhirnya mari kita bercakap tentang ralat dalam pendengar acara.

Ini disebabkan oleh penolakan janji yang tidak dikendalikan dalam panggilan balik pendengar acara. Ini membawa kepada ralat yang tidak pernah disebarkan ke konteks pelaksanaan utama.

Anda boleh mengenal pasti ralat ini dengan mengubah hala semua log peristiwa nod ke penapis grep untuk menangkap ralat yang dipancarkan semasa pengendalian acara

node -r events script.js 2>&1 | grep "Error"
Salin selepas log masuk

Dan itu sahaja.

Semoga anda mendapati arahan ini berguna semasa menyahpepijat ralat senyap dalam kod JavaScript.

Selain itu, komen di bawah ralat senyap manakah yang paling mengganggu anda?

Atas ialah kandungan terperinci memerintahkan untuk Nyahpepijat 'Ralat Senyap' dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan