Rumah > Artikel > hujung hadapan web > Memahami Kod Bersih: Pengendalian ⚡
Pengendalian ralat ialah aspek penting dalam menulis perisian yang mantap dan boleh dipercayai. Walau bagaimanapun, tidak dilakukan dengan berhati-hati boleh menyebabkan kod berantakan yang sukar dibaca dan diselenggara.
Bab 7 Kod Bersih menyelami teknik untuk mengendalikan ralat yang tidak mengacaukan kod anda, menekankan kejelasan dan kesederhanaan.
Dalam artikel ini, kami akan meneroka konsep utama daripada bab ini dan cara menggunakannya dalam JavaScript untuk memastikan pangkalan kod anda bersih dan boleh diselenggara.
Salah satu prinsip utama dalam Kod Bersih ialah memilih pengecualian berbanding kod ralat.
Pengecualian membolehkan anda memisahkan logik pengendalian ralat daripada logik utama anda, menjadikan kod anda lebih mudah dibaca.
Contoh: Elakkan Kod Ralat
function getUser(id) { const user = database.findUserById(id); if (user === null) { return -1; // Error code for user not found } return user; } const result = getUser(123); if (result === -1) { console.error('User not found'); } else { console.log(result); }
Dalam contoh ini, pengendalian ralat saling berkaitan dengan logik utama, menjadikannya lebih sukar untuk diikuti.
Contoh: Gunakan Pengecualian
function getUser(id) { const user = database.findUserById(id); if (user === null) { throw new Error('User not found'); } return user; } try { const user = getUser(123); console.log(user); } catch (error) { console.error(error.message); }
Dengan menggunakan pengecualian, kami memisahkan logik pengendalian ralat daripada logik utama, menjadikan kod lebih bersih dan lebih mudah difahami.
Apabila membuang pengecualian, adalah penting untuk menyediakan mesej ralat yang bermakna yang memberikan konteks tentang ralat.
Ini membantu dalam mendiagnosis isu dengan cepat tanpa perlu menggali kod.
Contoh: Berikan Konteks dalam Mesej Ralat
function getUser(id) { const user = database.findUserById(id); if (user === null) { throw new Error(`User with ID ${id} not found`); } return user; } try { const user = getUser(123); console.log(user); } catch (error) { console.error(error.message); // Outputs: User with ID 123 not found }
Mesej ralat deskriptif menyediakan konteks yang diperlukan untuk memahami masalah dengan segera.
Memulangkan null boleh menyebabkan ralat rujukan null yang sukar dikesan.
Daripada mengembalikan null, pertimbangkan untuk membuang pengecualian atau menggunakan corak kes khas yang menyediakan gelagat lalai.
Contoh: Elakkan Pembatalan Batal
function getUser(id) { const user = database.findUserById(id); if (user === null) { return null; // This can lead to null reference errors } return user; } const user = getUser(123); if (user !== null) { console.log(user.name); }
Memulangkan nol memerlukan semakan tambahan dan boleh mengacaukan kod anda.
Contoh: Buang Pengecualian atau Gunakan Kes Khas
function getUser(id) { const user = database.findUserById(id); if (user === null) { throw new Error(`User with ID ${id} not found`); } return user; } // OR class NullUser { get name() { return 'Guest'; } } function getUser(id) { const user = database.findUserById(id); return user || new NullUser(); }
Melemparkan pengecualian atau menggunakan objek kes khas (seperti NullUser) membantu mengelakkan ralat rujukan nol dan memastikan kod anda bersih.
Walaupun blok try-catch-finally penting untuk mengendalikan pengecualian, penggunaan berlebihan boleh mengacaukan kod anda.
Hanya gunakannya apabila perlu dan elakkan blok bersarang dalam.
Contoh: Elakkan Try-Catch Berlebihan
try { const data = JSON.parse(input); try { const user = getUser(data.id); try { sendEmail(user.email); } catch (error) { console.error('Failed to send email:', error.message); } } catch (error) { console.error('User retrieval failed:', error.message); } } catch (error) { console.error('Invalid JSON:', error.message); }
Kod ini sukar untuk diikuti kerana berbilang blok cuba-tangkap bersarang.
Contoh: Refactor untuk Mengurangkan Kekacauan
function parseInput(input) { try { return JSON.parse(input); } catch (error) { throw new Error('Invalid JSON'); } } function retrieveUser(data) { return getUser(data.id); } function notifyUser(user) { sendEmail(user.email); } try { const data = parseInput(input); const user = retrieveUser(data); notifyUser(user); } catch (error) { console.error(error.message); }
Dengan memecahkan logik kepada fungsi yang berasingan, kami mengurangkan sarang dan meningkatkan kebolehbacaan.
Jika anda mendapat pengecualian, pastikan anda mengendalikannya dengan betul.
Mengabaikan pengecualian secara senyap boleh membawa kepada tingkah laku yang tidak dijangka dan menyukarkan penyahpepijatan.
Contoh: Jangan Abaikan Pengecualian
try { const user = getUser(123); } catch (error) { // Ignoring the exception }
Mengabaikan pengecualian boleh menutup kemungkinan isu dalam kod anda.
Contoh: Kendalikan atau Log Pengecualian
try { const user = getUser(123); } catch (error) { console.error('An error occurred:', error.message); }
Mengendalikan atau mengelog pengecualian memastikan anda mengetahui sebarang isu dan boleh menanganinya dengan sewajarnya.
Pengendalian ralat yang berkesan adalah penting untuk menulis kod JavaScript yang bersih dan boleh diselenggara.
Dengan mengikut prinsip daripada Kod Bersih—seperti menggunakan pengecualian dan bukannya kod ralat, menyediakan konteks dalam mesej ralat, mengelakkan pulangan nol, menggunakan cuba-tangkap dengan berhati-hati dan tidak mengabaikan pengecualian yang ditangkap—anda boleh memastikan bahawa ralat anda mengendalikan logik adalah teguh dan tidak mengganggu.
Selamat Pengekodan!
Atas ialah kandungan terperinci Memahami Kod Bersih: Pengendalian ⚡. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!