Rumah > hujung hadapan web > tutorial js > Perjalanan Reaksi Saya: Hari 17

Perjalanan Reaksi Saya: Hari 17

DDD
Lepaskan: 2024-12-16 11:58:12
asal
561 orang telah melayarinya

My React Journey: Day 17

Ralat Pengendalian dan Nyahpepijat
Ralat tidak dapat dielakkan semasa perlaksanaan program, tetapi ia boleh diurus dengan berkesan dengan teknik pengendalian yang betul. Ini memastikan program tidak ranap secara mengejut dan memberikan maklum balas yang bermakna kepada pengguna.

Apakah Ralat?
Ralat ialah objek yang mewakili masalah yang berlaku semasa pelaksanaan program.
Ralat boleh mengganggu aliran program jika tidak dikendalikan dengan betul.

Jenis Ralat Biasa:

  1. Ralat Rangkaian: Isu dengan mewujudkan sambungan (cth., panggilan API gagal).
  2. Penolakan Janji: Janji yang tidak terurus mengakibatkan keadaan ditolak.
  3. Ralat Keselamatan: Isu yang berkaitan dengan kebenaran, akses atau sekatan keselamatan lain.

Kaedah Pengendalian Ralat
cuba...tangkap...akhirnya Struktur:
1.cuba{ } blok:

  • Mengandungi kod yang mungkin menimbulkan ralat.

2.tangkap { } blok:

  • Menangkap dan mengendalikan sebarang ralat yang dilemparkan dalam blok percubaan.
  • Gunakan console.error dan bukannya console.log untuk keterlihatan yang lebih baik dalam penyahpepijatan.

3.akhirnya { } blok (pilihan):

  • Sentiasa laksanakan, tidak kira sama ada ralat telah ditangkap.
  • Biasa digunakan untuk tugas pembersihan (cth., menutup fail, mengeluarkan sumber).

** Contoh**

Pengendalian Ralat Umum

try {
    console.log(x); // Throws ReferenceError because 'x' is not defined
}
catch (error) {
    console.error(error); // Outputs: ReferenceError: x is not defined
}
finally {
    console.log("This always executes");
}

console.log("You have reached the end!");
Salin selepas log masuk

Mengendalikan Ralat Input Pengguna

try {
    const dividend = Number(window.prompt("Enter a dividend: "));
    const divisor = Number(window.prompt("Enter a divisor: "));

    if (divisor === 0) {
        throw new Error("You can't divide by zero!");
    }
    if (isNaN(dividend) || isNaN(divisor)) {
        throw new Error("Values must be numbers.");
    }

    const result = dividend / divisor;
    console.log(result);
}
catch (error) {
    console.error(error.message); // Logs the custom error message
}
finally {
    console.log("You have reached the end");
}
Salin selepas log masuk

Amalan Terbaik untuk Pengendalian Ralat

1.Gunakan Mesej Ralat Deskriptif:

  • Jadikan ralat mudah difahami untuk nyahpepijat dan maklum balas pengguna.
  • Contoh: "Tidak dapat menyambung ke pelayan" dan bukannya "Ralat Rangkaian".
    2. Gunakan akhirnya untuk Tugasan Pembersihan:

  • Sentiasa keluarkan sumber seperti pemegang fail, sambungan pangkalan data, dll.

3. Tangkap Ralat Khusus:

  • Elakkan blok tangkapan yang terlalu generik; mengendalikan ralat yang berbeza dengan sewajarnya.
  • Contoh:
try {
    // Code
}
catch (error) {
    if (error instanceof TypeError) {
        console.error("Type Error:", error.message);
    } else {
        console.error("General Error:", error.message);
    }
}
Salin selepas log masuk

4.Elakkan Kegagalan Senyap:

  • Sentiasa log atau sampaikan ralat dan bukannya menekannya secara senyap.

Refleksi

Apa yang Saya Pelajari:

  • Cara menggunakan cuba...tangkap...akhirnya untuk menguruskan ralat dengan anggun.
  • Kepentingan menggunakan console.error untuk penyahpepijatan.
  • Melempar ralat tersuai dengan mesej yang bermakna.

Lambat & Mantap Memenangi Perlumbaan!

Atas ialah kandungan terperinci Perjalanan Reaksi Saya: Hari 17. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan