Kode pengguna dapat memunculkan pengecualian bawaan. Python mendefinisikan coba/kecuali untuk menangani pengecualian dan melanjutkan eksekusi program lebih lanjut tanpa gangguan Show
Mari kita segera ke contoh klausa coba/kecuali dasar coba/kecuali pernyataanDengan asumsi file tidak tersedia, mengeksekusi kode di bawah ini akan memberikan output seperti yang ditunjukkan di bawah ini
Dalam kasus penggunaan praktis seperti menghubungkan ke db atau membuka objek file, kita mungkin perlu melakukan operasi teardown seperti penutupan db/penutupan file terlepas dari blok yang dijalankan. Jadi akhirnya adalah salah satu blok yang dapat dicadangkan untuk operasi ini karena selalu dijalankan. Mari kita lihat sebuah contoh coba/kecuali/akhirnya pernyataan _Jadi apa yang mungkin salah di sini? Yah, seseorang dapat dengan mudah menginjakkan kaki di mulut mereka ketika mereka menggunakan pernyataan kembali dengan coba/kecuali/akhirnya dengan Python. Mari berhati-hati mengambil langkah demi langkah untuk memahami penggunaan pernyataan pengembalian selama penanganan pengecualian 1. Penggunaan pengembalian dengan coba/kecuali
Jika menurut Anda output dari kode di atas adalah 10, saya khawatir Anda salah. Cukup normal untuk membuat asumsi itu karena kita cenderung berpikir bahwa saat ada pernyataan pengembalian dalam suatu fungsi, maka ia kembali (keluar) dari fungsi tersebut. Yah, itu mungkin tidak benar dalam kasus ini Dari dokumen,
Jadi seperti yang Anda tebak dengan benar, output dari kode di atas adalah 30 Sekarang, apa yang terjadi jika pengecualian dimunculkan dalam kode yang disebutkan di atas 2. Penggunaan pengembalian dengan pengecualian
Jadi, sekali lagi nilai keluaran x akan menjadi 30. Kita harus ingat fakta bahwa pernyataan akhirnya akan dieksekusi SELALU Untuk mendapatkan gambaran yang lebih jelas tentang alur eksekusi, mari tambahkan pernyataan cetak di setiap blok _Ini akan memberikan gambaran tentang aliran eksekusi. Sekarang setelah kita memiliki pemahaman yang baik tentang bagaimana coba/kecuali/akhirnya bekerja dengan pernyataan pengembalian, mari kita coba memasukkan klausa lain
3. Penggunaan return dengan try/else/finally
Jadi, mengapa klausa else tidak dieksekusi di sini meskipun blok try tidak memunculkan pengecualian apa pun. Perhatikan pernyataan return di blok try. Blok else tidak pernah dieksekusi karena fungsi dikembalikan bahkan sebelum eksekusi mencapai klausa else Sekarang hapus pernyataan return di blok try dan jalankan kembali kode di atas _Ringkasan
Referensi
|