Program membuang kesalahan ketika misalnya input yang salah diberikan. Karena itu, seseorang perlu memastikan bahwa kesalahan terjadi ketika input yang salah sebenarnya diberikan. Karena itu kita perlu memeriksa pengecualian yang tepat, untuk contoh ini kita akan menggunakan pengecualian berikut Show
Pengecualian ini dimunculkan ketika input yang salah diberikan, dalam konteks berikut di mana kami selalu mengharapkan angka sebagai input teks _Untuk memeriksa apakah pengecualian telah diajukan, kami menggunakan
Ini pertama telah diimplementasikan dalam kasus uji berikut
Mungkin juga ada kebutuhan untuk memeriksa pengecualian yang seharusnya tidak dibuang. Namun, pengujian akan gagal secara otomatis saat pengecualian dilemparkan dan karenanya mungkin tidak diperlukan sama sekali. Hanya untuk menunjukkan opsi, metode pengujian kedua menunjukkan kasus tentang bagaimana seseorang dapat memeriksa pengecualian agar tidak dibuang. Pada dasarnya, ini menangkap pengecualian dan kemudian gagal dalam pengujian menggunakan metode Ringkasan. dalam tutorial ini, Anda mempelajari cara menangani pengecualian di Python dengan cara yang benar menggunakan pernyataan 5 Pengantar penanganan pengecualian di PythonUntuk menangani pengecualian, Anda menggunakan pernyataan 5. Pernyataan _5 memiliki klausa berikut _ Mari kita periksa pernyataan 5 secara lebih rinci mencobaDalam klausa _5, Anda menempatkan kode yang melindungi dari satu atau lebih pengecualian potensial. Merupakan praktik yang baik untuk menjaga kode sesingkat mungkin. Seringkali, Anda akan memiliki satu pernyataan dalam klausa 5 Klausa _5 muncul tepat satu kali dalam pernyataan 5 kecualiDalam klausa _3, Anda menempatkan kode yang menangani jenis pengecualian tertentu. Pernyataan 5 dapat memiliki nol atau lebih klausa 3. Biasanya, setiap klausa _3 menangani jenis pengecualian yang berbeda dengan cara tertentu Dalam klausul _3, 8 bersifat opsional. Dan _9 juga opsional. Namun, jika Anda menghilangkan _0, Anda akan memiliki penangan pengecualian kosong Saat menentukan jenis pengecualian dalam klausa 3, Anda menempatkan pengecualian paling spesifik hingga paling tidak spesifik dari atas ke bawah Jika Anda memiliki logika yang sama yang menangani berbagai jenis pengecualian, Anda dapat mengelompokkannya dalam satu klausa 3. Sebagai contoh
Menjadi
Penting untuk diperhatikan bahwa urutan _3 penting karena Python akan menjalankan klausa 3 pertama yang jenis pengecualiannya cocok dengan pengecualian yang terjadi akhirnyaKlausa _5 dapat muncul nol atau 1 kali dalam pernyataan 5. Klausa _5 selalu dijalankan baik pengecualian terjadi atau tidak kalau tidakKlausa _8 juga muncul nol atau 1 kali. Dan klausa _8 hanya valid jika pernyataan try memiliki setidaknya satu klausa 3 Biasanya, Anda menempatkan kode yang dijalankan jika klausa 5 berakhir secara normal Contoh penanganan pengecualian pythonBerikut ini mendefinisikan fungsi yang mengembalikan hasil angka dengan yang lain
Jika Anda meneruskan 0 ke argumen kedua, Anda akan mendapatkan pengecualian 2
Kesalahan
Untuk memperbaikinya, Anda dapat menangani pengecualian 2 di fungsi 4 sebagai berikut
Dalam contoh ini, fungsi _4 mengembalikan 6 jika 2 terjadi
Saat menggunakan fungsi 4, Anda perlu memeriksa apakah hasilnya adalah 6
Tetapi mengembalikan _6 mungkin bukan yang terbaik karena orang lain mungkin secara tidak sengaja mengevaluasi hasil dalam pernyataan 1 seperti ini
Dalam hal ini, itu berhasil. Namun, itu tidak akan berhasil jika argumen pertama adalah nol. Sebagai contoh _0 Pendekatan yang lebih baik adalah mengajukan pengecualian kepada penelepon jika pengecualian 2 terjadi. Sebagai contoh _1 Dalam contoh ini, fungsi _4 akan menimbulkan kesalahan jika 4 adalah nol. Untuk menggunakan fungsi 4, Anda perlu menangkap pengecualian 6 _2 Keluaran _3 Merupakan praktik yang baik untuk mengajukan pengecualian alih-alih mengembalikan 6 dalam kasus khusus Kecuali contoh pesananSaat Anda menangkap pengecualian dalam klausa kecuali, Anda perlu menempatkan pengecualian dari yang paling spesifik hingga yang paling tidak spesifik dalam hal hierarki pengecualian Berikut ini menunjukkan tiga kelas pengecualian. 8, 9, dan 0 Jika Anda menangkap pengecualian, Anda harus menempatkannya dalam urutan berikut. IndexError, LookupError, dan Pengecualian Sebagai contoh, berikut ini mendefinisikan daftar tiga string dan upaya untuk mengakses elemen ke-4 _4 Ini mengeluarkan kesalahan berikut _5 Akses _1 menyebabkan pengecualian 0. Namun, jika Anda menukar klausa _3 dan menangkap 9 pertama dan 0 kedua seperti ini _6 Keluaran _7 Pengecualian masih _0 tetapi pesan berikut ini menyesatkan Penangan pengecualian kosongSaat Anda ingin menangkap pengecualian apa pun, Anda dapat menggunakan penangan pengecualian telanjang. Penangan pengecualian kosong tidak menentukan jenis pengecualian _8 Ini setara dengan yang berikut ini _9 Penangan pengecualian telanjang akan menangkap pengecualian apa pun termasuk pengecualian SystemExit dan KeyboardInterupt Pengecualian telanjang akan mempersulit untuk menghentikan program dengan Control-C dan menyamarkan program lain Jika Anda ingin menangkap semua pengecualian yang menandakan kesalahan program, Anda dapat menggunakan exception sebagai gantinya 0 Dalam praktiknya, Anda harus menghindari penggunaan penangan pengecualian kosong. Jika Anda tidak tahu pengecualian yang harus ditangkap, biarkan saja pengecualian terjadi dan kemudian ubah kode untuk menangani pengecualian ini Untuk mendapatkan informasi pengecualian dari penangan pengecualian telanjang, Anda menggunakan fungsi 7 dari modul 8 Fungsi _9 mengembalikan tuple yang terdiri dari tiga nilai
Contoh berikut menggunakan fungsi _9 untuk memeriksa pengecualian ketika string dibagi dengan angka 1 Keluaran 2 Keluaran menunjukkan bahwa kode dalam klausa try menyebabkan pengecualian 5. Oleh karena itu, Anda dapat memodifikasi kode untuk menanganinya secara khusus sebagai berikut |