Pertama, kita perlu memahami apa itu kesalahan dan jenisnya.
Jenis Kesalahan
Saat bekerja dalam bahasa pemrograman apa pun, umumnya ada dua jenis kesalahan yang dapat terjadi:
Kesalahan Operasional
Kesalahan Operasional terjadi ketika aplikasi menghadapi pengecualian yang tidak tertangani atau beberapa masalah dalam kode. Jenis kesalahan ini biasanya sulit dikenali karena ada banyak penyebab asal usulnya, misalnya. kebocoran memori, loop tanpa akhir, desain sistem yang tidak akurat, dll.
Cara yang efisien untuk mengatasi kesalahan operasional adalah dengan menggunakan strategi penanganan kesalahan yang optimal untuk menemukan sumber kesalahan dan memberi tahu pengembang sehingga dapat diatasi tepat waktu.
Kesalahan Fungsional
Kesalahan fungsional adalah kesalahan yang menghentikan fungsi normal kode aplikasi. Karena kesalahan ini berperilaku berbeda, kesalahan ini mungkin memerlukan lebih banyak brainstorming untuk mengetahui asal usulnya karena kesalahan tersebut mungkin berperilaku berbeda selama siklus hidup aplikasi.
Kasus sederhana dapat berupa program di mana pengguna telah menerapkan logika yang salah yang dapat mengakibatkan loop tak terbatas dan pada akhirnya membuat program crash.
Pengembang perlu menggali lebih dalam basis kode untuk mengidentifikasi kemungkinan kesalahan fungsional dengan menggunakan teknik seperti debugging dan pelacakan tumpukan, dll.
Sekarang setelah kita mengetahui jenis kesalahan yang mungkin terjadi pada skrip kode kita, kita perlu memahami mengapa kita perlu menangani kesalahan tersebut.
Desakan untuk Menangani Kesalahan di Node.js
Sebelum menjelaskan konsep cara menangani error pada Node.js menggunakan try-catch; penting untuk memiliki pemahaman mengapa ada kebutuhan untuk menangani kesalahan. Menangani kesalahan dalam kode aplikasi sangat penting untuk membangun aplikasi pengalaman pengguna yang andal dan ditingkatkan bagi pengguna.
Meningkatkan Pengalaman Pengguna
Sebaiknya hindari penggunaan pesan umum dan tampilkan pesan kesalahan yang mudah digunakan untuk pengalaman pengguna yang lebih baik.
Membangun Landasan Kode yang Lebih Kuat
Ketika kesalahan ditangani secara optimal, landasan kode tampak lebih realistis. Ini secara efisien menangkap dan menangani kesalahan yang diinginkan sehingga mengurangi risiko kerusakan aplikasi.
Deteksi Bug
Penanganan kesalahan memudahkan untuk menemukan bug selama fase pengembangan dan menghapusnya sedini mungkin. Hal ini memungkinkan pengguna untuk mengoptimalkan aplikasi mereka dalam tahap pengembangan dengan lebih akurat, memungkinkan kode mengalir tanpa gangguan apa pun.
Aplikasi Crash
Tidak menangani kesalahan dapat mengakibatkan gangguan aliran kode secara tiba-tiba dan pada akhirnya membuat aplikasi mogok. Penggunaan “ coba tangkap ” blok memungkinkan kami menangani kesalahan dengan lancar.
Sekarang, mari kita mulai dengan melihat struktur/Sintaks dari blok try-catch yang akan kita terapkan dalam kode kita.
Struktur Blok coba-tangkap
Struktur blok try-catch cukup mudah dan merupakan alat dasar untuk menangani kesalahan secara efektif.
Struktur blok try-catch adalah:
mencoba {} menangkap ( kesalahan ) {
menghibur. kesalahan ( ) ;
} Akhirnya {
}
Fungsi dari kode di atas adalah:
- “ mencoba ” blok berisi semua kode yang berfungsi dan kesalahan mungkin timbul di blok ini. Jika ada kesalahan yang muncul di blok ini, hal itu akan memicu “ menangkap ' memblokir.
- “ menangkap ” blok adalah tempat semua kesalahan yang diperlukan ditangani. Pengguna dapat mengubah propertinya dan melakukan tindakan yang diinginkan.
- “ Akhirnya ” blok adalah blok opsional, dan dijalankan setiap kali terjadi kesalahan atau tidak. Ia melakukan operasi pembersihan.
Pengertian blok try-catch secara praktis dapat dipahami dengan kasus dimana kita mencoba mengakses suatu file yang mungkin ada atau tidak. Jika tidak ada bisa saja memberikan error, untuk menghindari error tersebut user dapat mengatasinya dengan memanfaatkan konsep try-catch.
Kesalahan Penanganan File menggunakan blok “try-catch” di Node.js
Pertama, mari kita lihat suatu masalah tanpa menggunakan “ coba tangkap ' memblokir. Dalam contoh kode di bawah ini, file dibuka tanpa penanganan kesalahan yang tepat:
konstanta fs = memerlukan ( 'fs' ) ;konstanta info = fs. bacaFileSync ( '/Pengguna/Lenovo/file.txt' ) ;
menghibur. catatan ( 'Sepotong kode penting yang harus dijalankan di akhir' ) ;
Penjelasan dari kode di atas adalah:
- “ const fs = memerlukan('fs') ” mengimpor modul Node.js 'fs' (sistem file) yang memungkinkan pengguna bekerja dengan sistem file, termasuk semua operasi file seperti membaca atau menulis file.
- “ const data = fs.readFileSync('/Users/Lenovo/file.txt') ” membaca konten file di jalur yang ditentukan. “ bacaFileSync ” adalah operasi sinkron yang berarti menghentikan eksekusi kode lebih lanjut hingga file dibaca pada jalur yang ditentukan dan informasi disimpan di “ info ' variabel.
- “ console.log('Sepotong kode penting yang harus dijalankan di akhir') ” mencetak pesan di terminal tetapi baris ini tidak dijalankan sampai file tidak dibaca pada langkah sebelumnya.
Keluaran
Error yang dihasilkan dari kode di atas akan muncul seperti ini:
Dapat dilihat bahwa menjalankan kode ini tanpa penanganan kesalahan yang tepat akan menghasilkan kesalahan. Sekarang refactor kode di atas menggunakan blok “try-catch”:
konstanta fs = memerlukan ( 'fs' ) ;mencoba {
konstanta info = fs. bacaFileSync ( '/Pengguna/Lenovo/file.txt' ) ;
menghibur. catatan ( info ) ;
} menangkap ( kesalahan ) {
menghibur. kesalahan ( ` Kesalahan membaca file : $ { kesalahan. pesan } ` ) ;
}
Fungsi dari kode di atas adalah:
- Proses pembacaan file ditempatkan di “ mencoba ” blokir karena ada kemungkinan kesalahan akan muncul di sini.
- “ konsol.log(info) ” mencatat konten file dan mencetaknya di konsol.
- “ menangkap ” blok menangkap kemungkinan kesalahan yang mungkin terjadi di “ mencoba ” memblokir saat kode dieksekusi dan mencatat pesan kesalahan ke terminal.
- “ console.error(`Kesalahan membaca file: ${error.message}`) ” mencatat pesan kesalahan tertentu yang diperoleh sebagai akibat dari kesalahan yang tertangkap.
Keluaran
Output dari kode yang difaktorkan ulang secara efisien akan menampilkan pesan kesalahan optimal seperti yang ditunjukkan di bawah ini pada tangkapan layar terlampir:
Menggunakan try-catch memungkinkan kita menangani kemungkinan kesalahan yang mungkin terjadi, tetapi untuk pemahaman yang lebih baik, beberapa praktik efisien dapat membantu.
Praktik Terbaik Untuk Penanganan Kesalahan
Pengguna dapat mengikuti praktik berikut untuk menangani kesalahan dalam kode aplikasi mereka:
Menggunakan try-catch dengan bijak
Penting untuk menggunakan “ coba tangkap ” hanya jika perlu digunakan, terutama di bagian penting kode yang terdapat risiko potensi kesalahan. Menggunakan terlalu banyak kode dapat membuat kode menjadi rumit.
Menggunakan kode Asinkron
Ketika kode harus ditangani dengan kode asinkron, coba gunakan “ coba tangkap ” dengan janji dan async/menunggu untuk menangani kesalahan secara optimal.
Catat dan Laporkan Kesalahan
Selalu catat dan laporkan kesalahan spesifik dengan benar di blok tangkapan, karena pesan kesalahan yang jelas membantu mengidentifikasi akar penyebab kesalahan.
Mengurangi Kompleksitas
Tangani situasi di mana kesalahannya tidak kritis. Menghapus bagian tertentu (jika tidak diperlukan) dapat mengurangi kompleksitas kode.
Menghindari Kesalahan Diam-diam
Tulis kode sedemikian rupa sehingga menampilkan pesan kesalahan jika diperlukan, sebaliknya jika pesan kesalahan tidak ditunjukkan maka akan menjadi masalah untuk menangani kesalahan tanpa identifikasi yang tepat.
Sekian tentang fungsi blok try-catch dan bagaimana blok tersebut dapat digunakan secara efisien untuk menangani kesalahan di Node.js.
Kesimpulan
Menjadi mahir dalam menangani kesalahan di Node.js adalah langkah dasar untuk mengembangkan aplikasi yang kuat dan konsisten. Penggunaan yang optimal dari “ coba tangkap ” blok bersama dengan berbagai praktik seperti teknik asinkron dan pencatatan kesalahan yang tepat dapat membantu membangun aplikasi Node.js yang stabil dan ramah pengguna. Artikel ini telah menjelaskan struktur, penerapan praktis, dan praktik penanganan yang dapat diterapkan sesuai kebutuhan pengguna.