Try…catch adalah pernyataan yang umum digunakan dalam berbagai bahasa pemrograman. Pada dasarnya, ini digunakan untuk menangani bagian kode yang rawan kesalahan. Ini awalnya menguji kode untuk semua kemungkinan kesalahan yang mungkin ada di dalamnya, kemudian mengimplementasikan tindakan untuk mengatasi kesalahan tersebut (jika terjadi). Pendekatan pemrograman yang baik adalah menyimpan kode kompleks di dalam pernyataan try…catch Show
Mari kita bahas setiap blok pernyataan satu per satu mencoba{} pernyataan. Di sini, kode yang memerlukan kemungkinan pengujian kesalahan disimpan di dalam blok percobaan. Jika terjadi kesalahan, itu diteruskan ke blok catch{} untuk melakukan tindakan yang sesuai dan menangani kesalahan. Jika tidak, itu mengeksekusi kode yang tertulis di dalamnya catch{} pernyataan. Blok ini menangani kesalahan kode dengan mengeksekusi kumpulan pernyataan yang ditulis di dalam blok. Blok ini berisi penangan pengecualian yang ditentukan pengguna atau penangan bawaan. Blok ini dijalankan hanya ketika ada kode rawan kesalahan yang perlu ditangani di blok try. Jika tidak, blok tangkapan akan dilewati Catatan. catch {} mengeksekusi pernyataan hanya setelah eksekusi pernyataan try {}. Juga, satu blok try dapat berisi satu atau lebih blok catchSintaksiscoba… tangkap contohnyaUji SekarangPernyataan LemparPernyataan lemparan digunakan untuk melempar kesalahan yang ditentukan pengguna. Pengguna dapat menentukan dan melempar kesalahan kustom mereka sendiri. Ketika pernyataan throw dieksekusi, pernyataan yang ada setelahnya tidak akan dieksekusi. Kontrol akan langsung lolos ke catch block Sintaksiscoba… tangkap… lempar sintaksPengecualian dapat berupa string, angka, objek, atau nilai boolean lempar contoh dengan try…catchUji SekarangDengan bantuan pernyataan lemparan, pengguna dapat membuat kesalahan mereka sendiri coba… tangkap… akhirnya pernyataanAkhirnya adalah blok pernyataan opsional yang dieksekusi setelah eksekusi pernyataan try dan catch. Akhirnya blok tidak berlaku untuk pengecualian yang akan dilemparkan. Pengecualian apa pun yang dilemparkan atau tidak, akhirnya memblokir kode, jika ada, pasti akan dieksekusi. Itu tidak peduli dengan output juga Hukum Murphy menyatakan bahwa apa pun yang salah pada akhirnya akan salah. Ini berlaku sedikit terlalu baik di dunia pemrograman. Jika Anda membuat aplikasi, kemungkinan Anda akan membuat bug dan masalah lainnya. Kesalahan dalam JavaScript adalah salah satu masalah umum tersebut Keberhasilan produk perangkat lunak bergantung pada seberapa baik pembuatnya dapat menyelesaikan masalah ini sebelum merugikan penggunanya. Dan JavaScript, dari semua bahasa pemrograman, terkenal karena desain penanganan error rata-ratanya Jika Anda membuat aplikasi JavaScript, ada kemungkinan besar Anda akan mengacaukan tipe data pada satu titik atau lainnya. Jika bukan itu, maka Anda mungkin akan mengganti undefined dengan operator null atau triple equals ( 1) dengan operator double equals ( 2)Hanya manusia yang membuat kesalahan. Inilah sebabnya kami akan menunjukkan kepada Anda semua yang perlu Anda ketahui tentang penanganan kesalahan dalam JavaScript Artikel ini akan memandu Anda melalui kesalahan dasar dalam JavaScript dan menjelaskan berbagai kesalahan yang mungkin Anda temui. Anda kemudian akan mempelajari cara mengidentifikasi dan memperbaiki kesalahan ini. Ada juga beberapa tip untuk menangani kesalahan secara efektif di lingkungan produksi Tanpa basa-basi lagi, mari kita mulai Lihat Panduan Video Kami untuk Menangani Kesalahan JavaScriptLihat bagaimana Kinsta menghadapi persaingan. Membandingkan Apa Itu Kesalahan JavaScript?Kesalahan dalam pemrograman mengacu pada situasi yang tidak memungkinkan program berfungsi secara normal. Itu bisa terjadi ketika sebuah program tidak tahu bagaimana menangani pekerjaan yang ada, seperti ketika mencoba membuka file yang tidak ada atau menjangkau titik akhir API berbasis web saat tidak ada konektivitas jaringan Situasi ini mendorong program untuk memberikan kesalahan kepada pengguna, menyatakan bahwa ia tidak tahu bagaimana melanjutkan. Program mengumpulkan informasi sebanyak mungkin tentang kesalahan dan kemudian melaporkan bahwa itu tidak dapat dilanjutkan Hukum Murphy menyatakan bahwa apa pun yang salah pada akhirnya akan salah 😬 Ini berlaku terlalu baik di dunia JavaScript 😅 Bersiaplah dengan panduan ini 👇Klik untuk menge-TweetPemrogram cerdas mencoba memprediksi dan menutupi skenario ini sehingga pengguna tidak perlu mengetahui pesan kesalahan teknis seperti "404" secara mandiri. Sebaliknya, mereka menunjukkan pesan yang jauh lebih mudah dipahami. “Halaman tidak dapat ditemukan. ” Kesalahan dalam JavaScript adalah objek yang ditampilkan setiap kali terjadi kesalahan pemrograman. Objek ini berisi banyak informasi tentang jenis kesalahan, pernyataan yang menyebabkan kesalahan, dan pelacakan tumpukan saat kesalahan terjadi. JavaScript juga memungkinkan pemrogram membuat kesalahan khusus untuk memberikan informasi tambahan saat men-debug masalah Properti KesalahanSekarang setelah definisi kesalahan JavaScript sudah jelas, saatnya untuk menyelami detailnya Kesalahan dalam JavaScript membawa properti standar dan kustom tertentu yang membantu memahami sebab dan akibat dari kesalahan. Secara default, kesalahan dalam JavaScript berisi tiga properti
Selain itu, error juga dapat membawa properti seperti columnNumber, lineNumber, fileName, dll. , untuk mendeskripsikan kesalahan dengan lebih baik. Namun, properti ini tidak standar dan mungkin ada atau tidak ada di setiap objek kesalahan yang dihasilkan dari aplikasi JavaScript Anda Memahami Stack TracePelacakan tumpukan adalah daftar pemanggilan metode yang digunakan program ketika peristiwa seperti pengecualian atau peringatan terjadi. Seperti inilah contoh pelacakan tumpukan yang disertai dengan pengecualian Contoh Stack TraceSeperti yang Anda lihat, ini dimulai dengan mencetak nama dan pesan kesalahan, diikuti dengan daftar metode yang dipanggil. Setiap pemanggilan metode menyatakan lokasi kode sumbernya dan baris tempat pemanggilannya. Anda dapat menggunakan data ini untuk menelusuri basis kode dan mengidentifikasi bagian kode mana yang menyebabkan kesalahan Daftar metode ini disusun secara bertumpuk. Ini menunjukkan di mana pengecualian Anda pertama kali dilemparkan dan bagaimana itu disebarkan melalui pemanggilan metode bertumpuk. Menerapkan tangkapan untuk pengecualian tidak akan membiarkannya menyebar melalui tumpukan dan merusak program Anda. Namun, Anda mungkin ingin membiarkan kesalahan fatal tidak tertangkap untuk merusak program dalam beberapa skenario dengan sengaja Kesalahan vs PengecualianKebanyakan orang biasanya menganggap kesalahan dan pengecualian sebagai hal yang sama. Namun, penting untuk mencatat sedikit perbedaan mendasar di antara mereka Pengecualian adalah objek kesalahan yang telah dilemparkan Untuk memahami ini dengan lebih baik, mari kita ambil contoh singkat. Inilah cara Anda dapat menentukan kesalahan dalam JavaScript
Dan begitulah objek _3 menjadi pengecualian _Namun, kebanyakan orang cenderung menggunakan bentuk steno yang mendefinisikan objek kesalahan saat melemparnya
Ini adalah praktik standar. Namun, itu salah satu alasan mengapa pengembang cenderung mencampuradukkan pengecualian dan kesalahan. Oleh karena itu, mengetahui dasar-dasarnya sangat penting meskipun Anda menggunakan singkatan untuk menyelesaikan pekerjaan Anda dengan cepat Jenis Kesalahan dalam JavaScriptAda berbagai jenis kesalahan yang telah ditentukan sebelumnya dalam JavaScript. Mereka secara otomatis dipilih dan ditentukan oleh runtime JavaScript setiap kali pemrogram tidak secara eksplisit menangani kesalahan dalam aplikasi Bagian ini akan memandu Anda melalui beberapa jenis kesalahan paling umum dalam JavaScript dan memahami kapan dan mengapa kesalahan itu terjadi RangeErrorRangeError dilemparkan ketika variabel diatur dengan nilai di luar rentang nilai legalnya. Ini biasanya terjadi saat meneruskan nilai sebagai argumen ke suatu fungsi, dan nilai yang diberikan tidak terletak pada rentang parameter fungsi. Terkadang sulit untuk memperbaikinya saat menggunakan pustaka pihak ketiga yang tidak terdokumentasi dengan baik karena Anda perlu mengetahui kisaran nilai yang mungkin agar argumen dapat meneruskan nilai yang benar Beberapa skenario umum di mana RangeError terjadi adalah
ReferensiKesalahanReferenceError terjadi ketika ada yang salah dengan referensi variabel dalam kode Anda. Anda mungkin lupa menentukan nilai untuk variabel sebelum menggunakannya, atau Anda mungkin mencoba menggunakan variabel yang tidak dapat diakses dalam kode Anda. Bagaimanapun, melalui pelacakan tumpukan memberikan banyak informasi untuk menemukan dan memperbaiki referensi variabel yang salah Beberapa alasan umum mengapa Kesalahan Referensi terjadi adalah
Kesalahan sintaksKesalahan ini adalah salah satu yang paling sederhana untuk diperbaiki karena menunjukkan kesalahan dalam sintaks kode. Karena JavaScript adalah bahasa skrip yang ditafsirkan, bukan dikompilasi, ini dilontarkan saat aplikasi mengeksekusi skrip yang berisi kesalahan. Dalam kasus bahasa yang dikompilasi, kesalahan tersebut diidentifikasi selama kompilasi. Dengan demikian, binari aplikasi tidak dibuat hingga ini diperbaiki Beberapa alasan umum mengapa SyntaxErrors mungkin terjadi adalah
Ini adalah praktik yang baik untuk menggunakan alat linting di IDE Anda untuk mengidentifikasi kesalahan seperti itu untuk Anda sebelum masuk ke browser TypeErrorTypeError adalah salah satu kesalahan paling umum di aplikasi JavaScript. Kesalahan ini dibuat ketika beberapa nilai ternyata bukan tipe yang diharapkan tertentu. Beberapa kasus yang sering terjadi adalah
Ada lebih banyak kemungkinan di mana TypeError dapat terjadi. Kita akan melihat beberapa contoh terkenal nanti dan mempelajari cara memperbaikinya Kesalahan internalJenis InternalError digunakan saat pengecualian terjadi di mesin runtime JavaScript. Ini mungkin atau mungkin tidak menunjukkan masalah dengan kode Anda Lebih sering daripada tidak, InternalError hanya terjadi dalam dua skenario
Pendekatan yang paling tepat untuk mengatasi kesalahan ini adalah mengidentifikasi penyebabnya melalui pesan kesalahan dan menyusun ulang logika aplikasi Anda, jika memungkinkan, untuk menghilangkan lonjakan beban kerja yang tiba-tiba pada mesin JavaScript Kesalahan URIURIError terjadi ketika fungsi penanganan URI global seperti 8 digunakan secara ilegal. Biasanya menunjukkan bahwa parameter yang diteruskan ke pemanggilan metode tidak sesuai dengan standar URI dan dengan demikian tidak diurai oleh metode dengan benarMendiagnosis kesalahan ini biasanya mudah karena Anda hanya perlu memeriksa argumen untuk malformasi EvalErrorEvalError terjadi ketika kesalahan terjadi dengan panggilan fungsi 9. Fungsi ________0______9 digunakan untuk mengeksekusi kode JavaScript yang disimpan dalam string. Namun, karena penggunaan fungsi _9 sangat tidak disarankan karena masalah keamanan dan spesifikasi ECMAScript saat ini tidak membuang kelas 2 lagi, jenis kesalahan ini ada hanya untuk mempertahankan kompatibilitas mundur dengan kode JavaScript lawasJika Anda mengerjakan JavaScript versi lama, Anda mungkin mengalami kesalahan ini. Bagaimanapun, sebaiknya selidiki kode yang dieksekusi dalam pemanggilan fungsi 9 untuk pengecualian apa punMembuat Jenis Kesalahan KhususMeskipun JavaScript menawarkan daftar kelas jenis kesalahan yang memadai untuk menutupi sebagian besar skenario, Anda selalu dapat membuat jenis kesalahan baru jika daftar tersebut tidak memenuhi kebutuhan Anda. Fondasi dari fleksibilitas ini terletak pada kenyataan bahwa JavaScript memungkinkan Anda membuang apa pun secara harfiah dengan perintah 4Jadi, secara teknis, pernyataan ini sepenuhnya legal
Namun, melempar tipe data primitif tidak memberikan detail tentang error, seperti tipe, nama, atau pelacakan tumpukan yang menyertainya. Untuk memperbaikinya dan menstandarkan proses penanganan kesalahan, kelas 5 telah disediakan. Juga tidak disarankan untuk menggunakan tipe data primitif sambil melemparkan pengecualianAnda dapat memperluas kelas _5 untuk membuat kelas kesalahan khusus Anda. Berikut adalah contoh dasar bagaimana Anda dapat melakukan ini
Dan Anda dapat menggunakannya dengan cara berikut
Dan Anda kemudian dapat mengidentifikasinya menggunakan kata kunci 7
10 Kesalahan Paling Umum di JavaScriptSekarang setelah Anda memahami jenis kesalahan umum dan cara membuat kesalahan khusus, saatnya untuk melihat beberapa kesalahan paling umum yang akan Anda hadapi saat menulis kode JavaScript Lihat Panduan Video Kami untuk Kesalahan JavaScript yang Paling Umum1. RangeError yang tidak tertangkapKesalahan ini terjadi di Google Chrome dalam beberapa skenario berbeda. Pertama, ini bisa terjadi jika Anda memanggil fungsi rekursif dan tidak berhenti. Anda dapat memeriksanya sendiri di Konsol Pengembang Chrome Contoh RangeError dengan pemanggilan fungsi rekursifJadi untuk mengatasi kesalahan seperti itu, pastikan untuk menentukan kasus perbatasan dari fungsi rekursif Anda dengan benar. Alasan lain mengapa kesalahan ini terjadi adalah jika Anda telah memberikan nilai yang berada di luar jangkauan parameter fungsi. Ini sebuah contoh Contoh RangeError dengan panggilan toExponential()Pesan kesalahan biasanya menunjukkan apa yang salah dengan kode Anda. Setelah Anda membuat perubahan, itu akan diselesaikan Output untuk pemanggilan fungsi toExponential()2. TypeError yang tidak tertangkap. Tidak dapat menyetel propertiKesalahan ini terjadi saat Anda menyetel properti pada referensi yang tidak ditentukan. Anda dapat mereproduksi masalah dengan kode ini
Inilah output yang akan Anda terima Contoh TypeErrorUntuk memperbaiki kesalahan ini, inisialisasi referensi dengan nilai sebelum mengakses propertinya. Begini tampilannya saat diperbaiki Bagaimana cara memperbaiki TypeError3. TypeError yang tidak tertangkap. Tidak dapat membaca propertiIni adalah salah satu kesalahan yang paling sering terjadi di JavaScript. Kesalahan ini terjadi saat Anda mencoba membaca properti atau memanggil fungsi pada objek yang tidak ditentukan. Anda dapat memperbanyaknya dengan sangat mudah dengan menjalankan kode berikut di konsol Pengembang Chrome
Inilah hasilnya Contoh TypeError dengan fungsi yang tidak terdefinisiObjek yang tidak terdefinisi adalah salah satu dari banyak kemungkinan penyebab kesalahan ini. Penyebab menonjol lainnya dari masalah ini dapat berupa inisialisasi status yang tidak tepat saat merender UI. Ini adalah contoh dunia nyata dari aplikasi React
Aplikasi dimulai dengan wadah status kosong dan dilengkapi dengan beberapa item setelah penundaan 2 detik. Penundaan diberlakukan untuk meniru panggilan jaringan. Bahkan jika jaringan Anda super cepat, Anda masih akan menghadapi penundaan kecil karena komponen akan dirender setidaknya sekali. Jika Anda mencoba menjalankan aplikasi ini, Anda akan menerima kesalahan berikut Pelacakan tumpukan TypeError di browserIni karena, pada saat rendering, wadah status tidak ditentukan; . Memperbaiki kesalahan ini mudah. Anda hanya perlu memberikan nilai default awal ke wadah negara _0Sekarang, setelah penundaan yang ditetapkan, aplikasi Anda akan menampilkan keluaran yang serupa Perbaikan yang tepat dalam kode Anda mungkin berbeda, tetapi intinya di sini adalah untuk selalu menginisialisasi variabel Anda dengan benar sebelum menggunakannya 4. TypeError. 'undefined' bukan objekKesalahan ini terjadi di Safari saat Anda mencoba mengakses properti atau memanggil metode pada objek yang tidak ditentukan. Anda dapat menjalankan kode yang sama dari atas untuk mereproduksi sendiri kesalahan tersebut Contoh TypeError dengan fungsi yang tidak terdefinisiSolusi untuk kesalahan ini juga sama — pastikan Anda telah menginisialisasi variabel Anda dengan benar dan tidak terdefinisi saat properti atau metode diakses 5. TypeError. null bukan objekIni, sekali lagi, mirip dengan kesalahan sebelumnya. Itu terjadi di Safari, dan satu-satunya perbedaan antara dua kesalahan adalah kesalahan ini terjadi ketika objek yang properti atau metodenya sedang diakses adalah 9 bukannya 0. Anda dapat mereproduksi ini dengan menjalankan potongan kode berikut _1Inilah output yang akan Anda terima Contoh TypeError dengan fungsi nolKarena _9 adalah nilai yang secara eksplisit ditetapkan ke variabel dan tidak ditetapkan secara otomatis oleh JavaScript. Kesalahan ini hanya dapat terjadi jika Anda mencoba mengakses variabel yang Anda tetapkan 9 sendiri. Jadi, Anda perlu meninjau kembali kode Anda dan memeriksa apakah logika yang Anda tulis sudah benar atau belum6. TypeError. Tidak dapat membaca properti 'panjang'Kesalahan ini terjadi di Chrome saat Anda mencoba membaca panjang objek 9 atau 0. Penyebab masalah ini mirip dengan masalah sebelumnya, tetapi cukup sering terjadi saat menangani daftar; . Inilah cara Anda dapat mereproduksi masalahContoh TypeError dengan objek yang tidak ditentukanNamun, di versi Chrome yang lebih baru, kesalahan ini dilaporkan sebagai 5. Begini tampilannya sekarangContoh TypeError dengan objek yang tidak ditentukan pada versi Chrome yang lebih baruPerbaikannya, sekali lagi, adalah memastikan bahwa objek yang panjangnya ingin Anda akses ada dan tidak disetel ke 97. TypeError. 'tidak terdefinisi' bukan fungsiKesalahan ini terjadi saat Anda mencoba memanggil metode yang tidak ada dalam skrip Anda, atau ada tetapi tidak dapat dirujuk dalam konteks pemanggilan. Kesalahan ini biasanya terjadi di Google Chrome, dan Anda dapat mengatasinya dengan memeriksa baris kode yang menampilkan kesalahan tersebut. Jika Anda menemukan kesalahan ketik, perbaiki dan periksa apakah itu menyelesaikan masalah Anda Jika Anda telah menggunakan kata kunci referensi mandiri 7 dalam kode Anda, kesalahan ini mungkin muncul jika 7 tidak terikat secara tepat dengan konteks Anda. Pertimbangkan kode berikut _2Jika Anda mengeksekusi kode di atas, itu akan membuang kesalahan yang telah kita bahas. Itu terjadi karena fungsi anonim diteruskan sebagai pendengar acara dieksekusi dalam konteks 9Sebaliknya, fungsi _0 didefinisikan dalam konteks _1Untuk mengatasi ini, Anda harus meneruskan referensi yang tepat ke fungsi dengan mengikatnya dengan metode 2Terapkan aplikasi Anda ke Kinsta - Mulai dengan Kredit $20 sekarangJalankan Node Anda. Aplikasi js, Python, Go, PHP, Ruby, Java, dan Scala, (atau hampir apa pun jika Anda menggunakan Dockerfile kustom Anda sendiri), dalam tiga langkah mudah Terapkan sekarang dan dapatkan diskon $20 _38. ReferensiKesalahan. peristiwa tidak ditentukanGalat ini terjadi saat Anda mencoba mengakses referensi yang tidak ditentukan dalam lingkup panggilan. Hal ini biasanya terjadi saat menangani peristiwa karena sering memberi Anda referensi yang disebut 3 dalam fungsi callback. Kesalahan ini dapat terjadi jika Anda lupa menentukan argumen peristiwa dalam parameter fungsi Anda atau salah mengejanyaKesalahan ini mungkin tidak terjadi di Internet Explorer atau Google Chrome (karena IE menawarkan variabel kejadian global dan Chrome melampirkan variabel kejadian secara otomatis ke penangan), tetapi kesalahan ini dapat terjadi di Firefox. Jadi disarankan untuk mengawasi kesalahan kecil seperti itu 9. TypeError. Penugasan ke variabel konstanIni adalah kesalahan yang muncul karena kecerobohan. Jika Anda mencoba menetapkan nilai baru ke variabel konstanta, Anda akan mendapatkan hasil seperti itu Contoh TypeError dengan penetapan objek konstanMeskipun tampaknya mudah untuk diperbaiki sekarang, bayangkan ratusan deklarasi variabel seperti itu dan salah satunya salah didefinisikan sebagai 4 alih-alih 5. , ada sedikit perbedaan antara gaya mendeklarasikan konstanta dan variabel dalam JavaScript. Oleh karena itu disarankan untuk memeriksa deklarasi Anda terlebih dahulu saat Anda menghadapi kesalahan ini. Anda juga bisa mengalami kesalahan ini jika Anda lupa bahwa referensi tersebut adalah konstanta dan menggunakannya sebagai variabel. Ini menunjukkan kecerobohan atau kesalahan dalam logika aplikasi Anda. Pastikan untuk memeriksa ini saat mencoba memperbaiki masalah ini10. (tidak dikenal). Kesalahan skripKesalahan skrip terjadi saat skrip pihak ketiga mengirimkan kesalahan ke browser Anda. Kesalahan ini diikuti oleh (tidak diketahui) karena skrip pihak ketiga milik domain yang berbeda dari aplikasi Anda. Peramban menyembunyikan detail lain untuk mencegah bocornya informasi sensitif dari skrip pihak ketiga Anda tidak dapat mengatasi kesalahan ini tanpa mengetahui detail lengkapnya. Inilah yang dapat Anda lakukan untuk mendapatkan informasi lebih lanjut tentang kesalahan tersebut
Setelah Anda dapat mengakses detail kesalahan, Anda kemudian dapat mengatur untuk memperbaiki masalah, yang mungkin terjadi pada pustaka pihak ketiga atau jaringan. Cara Mengidentifikasi dan Mencegah Kesalahan dalam JavaScriptMeskipun kesalahan yang dibahas di atas adalah yang paling umum dan sering terjadi di JavaScript, Anda akan menemukan, mengandalkan beberapa contoh saja tidak akan pernah cukup. Sangat penting untuk memahami cara mendeteksi dan mencegah segala jenis kesalahan dalam aplikasi JavaScript saat mengembangkannya. Inilah cara Anda menangani kesalahan dalam JavaScript Lempar dan Tangkap Kesalahan Secara ManualCara paling mendasar untuk menangani kesalahan yang telah dilemparkan baik secara manual atau saat runtime adalah dengan menangkapnya. Seperti kebanyakan bahasa lain, JavaScript menawarkan sekumpulan kata kunci untuk menangani kesalahan. Sangat penting untuk mengetahui masing-masing secara mendalam sebelum Anda mengatur untuk menangani kesalahan dalam aplikasi JavaScript Anda melemparkanKata kunci pertama dan paling dasar dari kumpulan ini adalah 4. Sebagai bukti, kata kunci throw digunakan untuk melempar kesalahan untuk membuat pengecualian dalam runtime JavaScript secara manual. Kami telah membahas ini sebelumnya, dan inilah inti dari signifikansi kata kunci ini
mencobaKata kunci _2 digunakan untuk menunjukkan bahwa blok kode mungkin mengeluarkan pengecualian. Sintaksnya adalah _4Penting untuk diperhatikan bahwa blok _3 harus selalu mengikuti blok 2 untuk menangani kesalahan secara efektifmenangkapKata kunci _3 digunakan untuk membuat blok tangkapan. Blok kode ini bertanggung jawab untuk menangani kesalahan yang ditangkap oleh blok 2 yang tertinggal. Ini sintaksnya _5Dan ini adalah bagaimana Anda mengimplementasikan _2 dan 3 blok bersama-sama _6Tidak seperti C++ atau Java, Anda tidak dapat menambahkan beberapa blok 3 ke blok 2 di JavaScript. Ini berarti bahwa Anda tidak dapat melakukan ini _7Sebagai gantinya, Anda dapat menggunakan pernyataan _1 atau pernyataan switch case di dalam blok tangkapan tunggal untuk menangani semua kemungkinan kasus kesalahan. Ini akan terlihat seperti ini _8akhirnyaKata kunci _2 digunakan untuk menentukan blok kode yang dijalankan setelah kesalahan ditangani. Blok ini dijalankan setelah blok try dan catchJuga, blok terakhir akan dieksekusi terlepas dari hasil dari dua blok lainnya. Ini berarti bahwa bahkan jika blok tangkapan tidak dapat menangani kesalahan seluruhnya atau kesalahan dilemparkan ke dalam blok tangkap, juru bahasa akan mengeksekusi kode di blok akhirnya sebelum program macet Agar dianggap valid, blok coba dalam JavaScript harus diikuti dengan blok tangkapan atau blok terakhir. Tanpa semua itu, juru bahasa akan memunculkan SyntaxError. Oleh karena itu, pastikan untuk mengikuti blok percobaan Anda dengan setidaknya salah satu dari mereka saat menangani kesalahan Tangani Kesalahan Secara Global Dengan Metode onerror()Metode _3 tersedia untuk semua elemen HTML untuk menangani kesalahan apa pun yang mungkin terjadi dengannya. Misalnya, jika tag _4 tidak dapat menemukan gambar yang URL-nya ditentukan, tag tersebut akan mengaktifkan metode onerror untuk memungkinkan pengguna menangani kesalahanBiasanya, Anda akan memberikan URL gambar lain dalam panggilan onerror untuk 4 tag untuk kembali ke. Ini adalah bagaimana Anda dapat melakukannya melalui JavaScript _9Namun, Anda bisa menggunakan fitur ini untuk membuat mekanisme penanganan kesalahan global untuk aplikasi Anda. Inilah cara Anda melakukannya 0Dengan penangan kejadian ini, Anda dapat menyingkirkan beberapa blok 6 yang ada di dalam kode Anda dan memusatkan penanganan kesalahan aplikasi Anda mirip dengan penanganan kejadian. Anda dapat melampirkan beberapa penangan kesalahan ke jendela untuk mempertahankan Prinsip Tanggung Jawab Tunggal dari prinsip desain SOLID. Penerjemah akan menggilir semua penangan hingga mencapai yang sesuaiLewati Kesalahan melalui Panggilan BalikMeskipun fungsi sederhana dan linier memungkinkan penanganan kesalahan tetap sederhana, callback dapat memperumit masalah Butuh solusi hosting yang memberi Anda keunggulan kompetitif? . Lihat rencana kami Pertimbangkan potongan kode berikut 1Fungsi di atas menunjukkan kondisi asinkron di mana suatu fungsi membutuhkan waktu untuk memproses operasi dan mengembalikan hasilnya nanti dengan bantuan callback Jika Anda mencoba memasukkan string alih-alih 4 dalam pemanggilan fungsi, Anda akan mendapatkan 7 sebagai hasilnyaIni perlu ditangani dengan baik. Begini caranya 2Ini harus menyelesaikan masalah secara ideal. Namun, jika Anda mencoba meneruskan string ke pemanggilan fungsi, Anda akan menerima ini Contoh kesalahan dengan argumen yang salahMeskipun Anda telah mengimplementasikan blok try-catch saat memanggil fungsi tersebut, masih dikatakan bahwa kesalahannya tidak tertangkap. Kesalahan dilemparkan setelah blok tangkap dieksekusi karena penundaan waktu habis Ini dapat terjadi dengan cepat dalam panggilan jaringan, di mana penundaan yang tidak terduga terjadi. Anda perlu membahas kasus seperti itu saat mengembangkan aplikasi Anda Inilah cara Anda menangani kesalahan dengan benar dalam panggilan balik _3Sekarang, output di konsol akan menjadi Contoh TypeError dengan argumen ilegalIni menunjukkan bahwa kesalahan telah ditangani dengan tepat Tangani Kesalahan dalam JanjiKebanyakan orang cenderung lebih suka janji untuk menangani aktivitas asinkron. Janji memiliki keuntungan lain — janji yang ditolak tidak menghentikan skrip Anda. Namun, Anda masih perlu mengimplementasikan catch block untuk menangani error pada promise. Untuk memahami ini dengan lebih baik, mari kita tulis ulang fungsi 8 menggunakan Promises _4Batas waktu dari kode sebelumnya telah diisolasi ke dalam fungsi 9 untuk dipahami. Jika Anda mencoba memasukkan string, bukan 4, output yang Anda dapatkan akan serupa dengan iniContoh TypeError dengan argumen ilegal di PromiseSekali lagi, ini disebabkan oleh 0 melempar kesalahan setelah semuanya selesai dieksekusi. Solusi untuk masalah ini sederhana. Cukup tambahkan panggilan _1 ke rantai janji seperti ini 5Sekarang hasilnya akan Menangani contoh TypeError dengan argumen ilegalAnda dapat mengamati betapa mudahnya menangani kesalahan dengan janji. Selain itu, Anda dapat merangkai blok 2 dan panggilan janji untuk menambahkan kode yang akan berjalan setelah penanganan kesalahan selesaiAtau, Anda juga dapat menangani kesalahan dalam janji menggunakan teknik try-catch-finally tradisional. Beginilah tampilan panggilan janji Anda dalam kasus itu _6Namun, ini hanya berfungsi di dalam fungsi asinkron. Oleh karena itu cara yang paling disukai untuk menangani kesalahan dalam promise adalah dengan menghubungkan 3 dan 2 ke panggilan promiselempar/tangkap vs onerror() vs Callback vs Janji. Mana yang Terbaik?Dengan empat metode yang Anda inginkan, Anda harus tahu cara memilih yang paling tepat dalam setiap kasus penggunaan tertentu. Inilah cara Anda dapat memutuskan sendiri melempar/menangkapAnda akan sering menggunakan metode ini. Pastikan untuk menerapkan kondisi untuk semua kesalahan yang mungkin terjadi di dalam blok tangkapan Anda, dan ingatlah untuk menyertakan blok terakhir jika Anda perlu menjalankan beberapa rutinitas pembersihan memori setelah blok percobaan Namun, terlalu banyak blok coba/tangkap dapat membuat kode Anda sulit dipertahankan. Jika Anda menemukan diri Anda dalam situasi seperti itu, Anda mungkin ingin menangani kesalahan melalui penangan global atau metode janji Saat memutuskan antara blok coba/tangkap asinkron dan janji 1, disarankan untuk menggunakan blok coba/tangkap async karena blok tersebut akan membuat kode Anda linier dan mudah di-debugonerror()Sebaiknya gunakan metode _3 saat Anda tahu bahwa aplikasi Anda harus menangani banyak kesalahan, dan kesalahan tersebut dapat tersebar dengan baik di seluruh basis kode. Metode _7 memungkinkan Anda menangani kesalahan seolah-olah itu hanyalah peristiwa lain yang ditangani oleh aplikasi Anda. Anda dapat menentukan beberapa penangan kesalahan dan melampirkannya ke jendela aplikasi Anda pada rendering awalNamun, Anda juga harus ingat bahwa metode _3 dapat menjadi tantangan yang tidak perlu untuk disiapkan dalam proyek yang lebih kecil dengan cakupan kesalahan yang lebih kecil. Jika Anda yakin bahwa aplikasi Anda tidak akan menimbulkan terlalu banyak kesalahan, metode lempar/tangkap tradisional akan bekerja paling baik untuk AndaCallback dan JanjiPenanganan kesalahan dalam panggilan balik dan janji berbeda karena desain dan struktur kodenya. Namun, jika Anda memilih di antara keduanya sebelum Anda menulis kode Anda, akan lebih baik untuk menggunakan janji Ini karena promise memiliki konstruk bawaan untuk merantai blok 1 dan 2 untuk menangani kesalahan dengan mudah. Metode ini lebih mudah dan bersih daripada mendefinisikan argumen tambahan/menggunakan kembali argumen yang ada untuk menangani kesalahanLacak Perubahan Dengan Repositori GitBanyak error yang sering muncul akibat kesalahan manual pada codebase. Saat mengembangkan atau men-debug kode Anda, Anda mungkin akhirnya membuat perubahan yang tidak perlu yang dapat menyebabkan kesalahan baru muncul di basis kode Anda. Pengujian otomatis adalah cara yang bagus untuk menjaga kode Anda tetap terkendali setelah setiap perubahan. Namun, itu hanya dapat memberi tahu Anda jika ada sesuatu yang salah. Jika Anda tidak sering membuat cadangan kode, Anda akan membuang waktu untuk mencoba memperbaiki fungsi atau skrip yang berfungsi dengan baik sebelumnya Di sinilah git memainkan perannya. Dengan strategi komit yang tepat, Anda dapat menggunakan riwayat git Anda sebagai sistem cadangan untuk melihat kode Anda saat berevolusi melalui pengembangan. Anda dapat dengan mudah menelusuri komit lama Anda dan mengetahui versi fungsi yang berfungsi dengan baik sebelumnya, tetapi melemparkan kesalahan setelah perubahan yang tidak terkait Anda kemudian dapat memulihkan kode lama atau membandingkan kedua versi untuk menentukan apa yang salah. Alat pengembangan web modern seperti GitHub Desktop atau GitKraken membantu Anda memvisualisasikan perubahan ini secara berdampingan dan mengetahui kesalahannya dengan cepat Kebiasaan yang dapat membantu Anda mengurangi kesalahan adalah menjalankan peninjauan kode setiap kali Anda membuat perubahan signifikan pada kode. Jika Anda bekerja dalam tim, Anda dapat membuat pull request dan meminta anggota tim meninjaunya secara menyeluruh. Ini akan membantu Anda menggunakan sepasang mata kedua untuk menemukan kesalahan yang mungkin terlewatkan oleh Anda Praktik Terbaik untuk Menangani Kesalahan dalam JavaScriptMetode yang disebutkan di atas cukup untuk membantu Anda merancang pendekatan penanganan kesalahan yang kuat untuk aplikasi JavaScript berikutnya. Namun, akan lebih baik untuk mengingat beberapa hal saat menerapkannya untuk mendapatkan yang terbaik dari pemeriksaan kesalahan Anda. Berikut adalah beberapa tips untuk membantu Anda 1. Gunakan Kesalahan Kustom Saat Menangani Pengecualian OperasionalKami memperkenalkan kesalahan khusus di awal panduan ini untuk memberi Anda gambaran tentang cara menyesuaikan penanganan kesalahan untuk kasus unik aplikasi Anda. Dianjurkan untuk menggunakan kesalahan kustom sedapat mungkin daripada kelas 5 generik karena memberikan lebih banyak informasi kontekstual ke lingkungan panggilan tentang kesalahanSelain itu, kesalahan khusus memungkinkan Anda memoderasi bagaimana kesalahan ditampilkan ke lingkungan panggilan. Ini berarti Anda dapat memilih untuk menyembunyikan detail tertentu atau menampilkan informasi tambahan tentang kesalahan sesuai keinginan Anda Anda dapat memformat konten kesalahan sesuai dengan kebutuhan Anda. Ini memberi Anda kontrol yang lebih baik atas bagaimana kesalahan ditafsirkan dan ditangani 2. Jangan Menelan Pengecualian Apa PunBahkan pengembang paling senior pun sering membuat kesalahan pemula — mengonsumsi tingkat pengecualian jauh di dalam kode mereka Anda mungkin menemukan situasi di mana Anda memiliki kode yang opsional untuk dijalankan. Jika berhasil, bagus; Dalam kasus ini, sering tergoda untuk meletakkan kode ini di blok try dan melampirkan blok catch kosong ke dalamnya. Namun, dengan melakukan ini, Anda akan membiarkan potongan kode itu terbuka untuk menyebabkan kesalahan apa pun dan lolos begitu saja. Ini bisa menjadi berbahaya jika Anda memiliki basis kode yang besar dan banyak contoh konstruksi manajemen kesalahan yang buruk Cara terbaik untuk menangani pengecualian adalah dengan menentukan level di mana semuanya akan ditangani dan menaikkannya sampai di sana. Level ini dapat berupa pengontrol (dalam aplikasi arsitektur MVC) atau middleware (dalam aplikasi berorientasi server tradisional) Dengan cara ini, Anda akan mengetahui di mana Anda dapat menemukan semua kesalahan yang terjadi di aplikasi Anda dan memilih cara mengatasinya, bahkan jika itu berarti tidak melakukan apa-apa. 3. Gunakan Strategi Terpusat untuk Log dan Peringatan KesalahanMencatat kesalahan seringkali merupakan bagian integral dari penanganannya. Mereka yang gagal mengembangkan strategi terpusat untuk mencatat kesalahan mungkin kehilangan informasi berharga tentang penggunaan aplikasi mereka Log peristiwa aplikasi dapat membantu Anda menemukan data penting tentang kesalahan dan membantu men-debugnya dengan cepat. Jika Anda memiliki mekanisme peringatan yang tepat yang disiapkan di aplikasi Anda, Anda dapat mengetahui kapan kesalahan terjadi di aplikasi Anda sebelum mencapai sebagian besar basis pengguna Anda Dianjurkan untuk menggunakan logger yang sudah dibuat sebelumnya atau membuatnya sesuai dengan kebutuhan Anda. Anda dapat mengonfigurasi logger ini untuk menangani kesalahan berdasarkan levelnya (peringatan, debug, info, dll. ), dan beberapa logger bahkan mengirimkan log ke server logging jarak jauh dengan segera. Dengan cara ini, Anda dapat melihat bagaimana logika aplikasi Anda bekerja dengan pengguna aktif 4. Beri tahu Pengguna Tentang Kesalahan dengan TepatPoin bagus lainnya yang perlu diingat saat menentukan strategi penanganan kesalahan Anda adalah mengingat pengguna Semua kesalahan yang mengganggu fungsi normal aplikasi Anda harus memberikan peringatan yang terlihat kepada pengguna untuk memberi tahu mereka bahwa ada yang tidak beres sehingga pengguna dapat mencoba mencari solusi. Jika Anda mengetahui perbaikan cepat untuk kesalahan tersebut, seperti mencoba kembali operasi atau keluar dan masuk kembali, pastikan untuk menyebutkannya dalam peringatan untuk membantu memperbaiki pengalaman pengguna secara real-time Dalam kasus kesalahan yang tidak menyebabkan gangguan apa pun pada pengalaman pengguna sehari-hari, Anda dapat mempertimbangkan untuk menekan peringatan dan mencatat kesalahan ke server jarak jauh untuk diselesaikan nanti. 5. Menerapkan Middleware (Node. js)Node. Lingkungan js mendukung middlewares untuk menambahkan fungsionalitas ke aplikasi server. Anda dapat menggunakan fitur ini untuk membuat middleware penanganan kesalahan untuk server Anda Manfaat paling signifikan menggunakan middleware adalah semua kesalahan Anda ditangani secara terpusat di satu tempat. Anda dapat memilih untuk mengaktifkan/menonaktifkan pengaturan ini untuk tujuan pengujian dengan mudah Inilah cara Anda dapat membuat middleware dasar _7Anda kemudian dapat menggunakan middleware ini di aplikasi Anda seperti ini _8Anda sekarang dapat menentukan logika khusus di dalam middleware untuk menangani kesalahan dengan tepat. Anda tidak perlu lagi khawatir tentang penerapan konstruksi penanganan kesalahan individu di seluruh basis kode Anda 6. Mulai Ulang Aplikasi Anda Untuk Menangani Kesalahan Pemrogram (Node. js)Ketika Node. Aplikasi js mengalami kesalahan pemrogram, mereka mungkin tidak serta merta memberikan pengecualian dan mencoba menutup aplikasi. Kesalahan tersebut dapat mencakup masalah yang timbul dari kesalahan pemrogram, seperti konsumsi CPU yang tinggi, pembengkakan memori, atau kebocoran memori. Cara terbaik untuk menangani ini adalah dengan memulai ulang aplikasi dengan baik dengan menabraknya melalui Node. mode klaster js atau alat unik seperti PM2. Ini dapat memastikan bahwa aplikasi tidak mogok saat tindakan pengguna, menghadirkan pengalaman pengguna yang buruk 7. Tangkap Semua Pengecualian yang Tidak Tertangkap (Node. js)Anda tidak akan pernah yakin bahwa Anda telah menutupi setiap kemungkinan kesalahan yang dapat terjadi di aplikasi Anda. Oleh karena itu, penting untuk menerapkan strategi fallback untuk menangkap semua pengecualian yang tidak tertangkap dari aplikasi Anda Inilah cara Anda dapat melakukannya _9Anda juga dapat mengidentifikasi apakah kesalahan yang terjadi merupakan pengecualian standar atau kesalahan operasional kustom. Berdasarkan hasil, Anda dapat keluar dari proses dan memulai ulang untuk menghindari perilaku yang tidak diharapkan 8. Tangkap Semua Penolakan Janji yang Tidak Tertangani (Node. js)Mirip dengan bagaimana Anda tidak akan pernah bisa menutupi semua kemungkinan pengecualian, ada kemungkinan besar Anda akan kehilangan penanganan semua kemungkinan penolakan janji. Namun, tidak seperti pengecualian, penolakan janji tidak menimbulkan kesalahan Jadi, janji penting yang ditolak mungkin berlalu begitu saja sebagai peringatan dan membiarkan aplikasi Anda terbuka terhadap kemungkinan mengalami perilaku yang tidak diharapkan. Oleh karena itu, sangat penting untuk menerapkan mekanisme fallback untuk menangani penolakan janji Inilah cara Anda dapat melakukannya 0 Jika Anda membuat aplikasi, ada kemungkinan Anda juga akan membuat bug dan masalah lain di dalamnya. 😅 Pelajari cara menanganinya dengan bantuan dari panduan ini ⬇️Klik untuk TweetRingkasanSeperti bahasa pemrograman lainnya, kesalahan cukup sering dan alami dalam JavaScript. Dalam beberapa kasus, Anda bahkan mungkin perlu melempar kesalahan dengan sengaja untuk menunjukkan respons yang benar kepada pengguna Anda. Oleh karena itu, memahami anatomi dan tipe mereka sangat penting Selain itu, Anda perlu dilengkapi dengan alat dan teknik yang tepat untuk mengidentifikasi dan mencegah kesalahan menghapus aplikasi Anda Dalam kebanyakan kasus, strategi yang solid untuk menangani error dengan eksekusi yang hati-hati sudah cukup untuk semua jenis aplikasi JavaScript Apakah ada kesalahan JavaScript lain yang masih belum bisa Anda atasi? Dapatkan semua aplikasi, database, dan situs WordPress Anda secara online dan dalam satu atap. Platform cloud kami yang penuh fitur dan berkinerja tinggi mencakup
Uji sendiri dengan diskon $20 untuk bulan pertama Hosting Aplikasi atau Hosting Basis Data. Jelajahi paket kami atau hubungi bagian penjualan untuk menemukan yang paling cocok untuk Anda Bagaimana cara menangani kesalahan yang tidak ditentukan dalam JavaScript?Kesalahan yang tidak terdefinisi adalah ketika kita tidak mendeklarasikan variabel dan mencoba memanggil variabel itu. Dalam JavaScript, kita dapat mendeklarasikan variabel tanpa menambahkan const , let , atau var , dan kita tidak akan mendapatkan kesalahan undefined atau not defined.
Apa artinya ketika ada sesuatu yang tidak didefinisikan dalam JavaScript?Pengecualian JavaScript "variabel tidak ditentukan" terjadi ketika ada variabel tidak ada yang direferensikan di suatu tempat .
Apa itu tangkapan () dalam JavaScript?Pernyataan catch memungkinkan Anda menentukan blok kode yang akan dieksekusi, jika terjadi kesalahan pada blok try . Pernyataan JavaScript mencoba dan menangkap datang berpasangan. try { Blok kode untuk dicoba. }
Bagaimana cara menangkap kesalahan sintaksis dalam JavaScript?Kesalahan sintaks dalam Javascript tidak dapat ditangani dengan menggunakan blok try-catch karena dilemparkan saat kode sedang diuraikan. Jendela. fungsi onerror() dapat digunakan sebagai gantinya untuk mencari tahu bahwa ada kesalahan sintaksis . |