Saya sering kesulitan menentukan kapan dan bagaimana menggunakan pengecualian. Mari kita pertimbangkan contoh sederhana. misalkan saya sedang menggores halaman web, katakan "http. // www. abe vigoda. com/", untuk menentukan apakah Abe Vigoda masih hidup. Untuk melakukan ini, yang perlu kita lakukan hanyalah mengunduh halaman dan mencari waktu munculnya frase "Abe Vigoda". Kami mengembalikan penampilan pertama, karena itu termasuk status Abe. Secara konseptual, akan terlihat seperti ini Show
Di mana Sebelum Anda berpendapat bahwa ada cara yang jauh lebih baik dan lebih kuat untuk menggores halaman ini untuk status Abe, ingatlah bahwa ini hanyalah contoh sederhana dan dibuat-buat yang digunakan untuk menyoroti situasi umum yang saya alami Sekarang, di mana kode ini dapat mengalami masalah?
Kasus pertama tidak terlalu menjadi masalah bagi saya. sebuah 2 dengan cara yang paling bodoh _Yaitu, itu tidak melakukan pengecekan kesalahan. Sekarang, ke opsi Pilihan 1. Kembalikan def parse_abe_status(s): return s[13:] _3Saya dapat memberi tahu penelepon bahwa ada yang tidak beres dengan mengembalikan 3 _Jika penelepon menerima 3 dari fungsi saya, dia harus berasumsi bahwa tidak ada penyebutan Abe Vigoda, sehingga terjadi kesalahan. Tapi ini cukup kabur, kan? Di sisi lain, kita dapat memasukkan beberapa pengecualian pilihan 2. Menggunakan PengecualianJika 8 akan dilempar saat kita mencoba 0. Tetapi penelepon seharusnya tidak diharapkan untuk menangani 8 yang dilemparkan oleh fungsi saya, karena dia tidak tahu dari mana 8 itu berasal; . Jadi kami akan membuat kelas pengecualian khusus untuk menangani ini
Sekarang bagaimana jika halaman telah berubah dan ada jumlah klik yang tidak terduga? . Jadi saya akan memberikan peringatan
Terakhir, kita mungkin menemukan bahwa _3 tidak hidup atau mati. Mungkin, untuk alasan yang aneh, hari ini ternyata 4. Maka saya tidak ingin mengembalikan 5, karena itu menyiratkan bahwa Abe sudah mati. Apa yang harus saya lakukan di sini? . Tapi jenis apa?
Opsi 3. Suatu tempat di antaraSaya pikir metode kedua, dengan pengecualian, lebih disukai, tetapi saya tidak yakin apakah saya menggunakan pengecualian dengan benar di dalamnya. Saya ingin tahu bagaimana programmer yang lebih berpengalaman akan menangani ini Kapan saya harus mengajukan pengecualian?Pengecualian harus digunakan untuk situasi luar biasa di luar logika normal suatu program . Dalam program contoh, nilai di luar rentang kemungkinan cukup umum dan harus ditangani dengan menggunakan logika tipe if-else yang normal.
Mengapa Anda mengajukan pengecualian dengan Python?Terkadang Anda ingin Python melontarkan pengecualian khusus untuk penanganan kesalahan . Anda dapat melakukan ini dengan memeriksa suatu kondisi dan menaikkan pengecualian, jika kondisinya Benar. Pengecualian yang dimunculkan biasanya memperingatkan pengguna atau aplikasi panggilan.
Kapan saya harus menggunakan kenaikan gaji dengan Python?Definisi dan Penggunaan
. Anda dapat menentukan jenis kesalahan apa yang akan dimunculkan, dan teks yang akan dicetak ke pengguna. to raise an exception. You can define what kind of error to raise, and the text to print to the user.
Kapan sebaiknya Anda menggunakan exception handling Python?Alasan untuk menggunakan coba/kecuali adalah ketika Anda memiliki blok kode untuk dieksekusi yang terkadang akan berjalan dengan benar dan terkadang tidak , bergantung pada . |