Rumah  >  Artikel  >  hujung hadapan web  >  Memahami Kod Bersih: Pengendalian ⚡

Memahami Kod Bersih: Pengendalian ⚡

WBOY
WBOYasal
2024-08-22 18:56:22691semak imbas

Understanding Clean Code: Handling ⚡

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.


? 1. Gunakan Pengecualian Daripada Kod Ralat

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.


? 2. Sediakan Konteks dengan Mesej Bermakna

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.


? 3. Jangan Kembali Null

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.


? 4. Gunakan Try-Catch-Akhirnya Berhemat

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.


? 5. Jangan Abaikan Pengecualian Tertangkap

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.


⚡ Kesimpulan

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!

Kenyataan:
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 sebelumnya:Apakah Set dan Peta JavaScript?Artikel seterusnya:Apakah Set dan Peta JavaScript?