Oleh Eric Carb Show Alur Kontrol Pengecualian - Coba, Kecuali, Lain, Terakhir Pengecualian dalam Python adalah objek yang mewakili kesalahan. Pengecualian dapat dimunculkan dengan banyak cara, seperti meneruskan argumen yang tidak valid ke fungsi ("Boo" + 7), melakukan operasi ilegal tertentu (12/0) atau bahkan secara eksplisit (menaikkan TypeError). Secara default, pengecualian menghentikan program Python dan mencetak Traceback ke konsol dengan informasi tentang pengecualian dan cara memunculkannya. Namun, pernyataan try ada untuk memberikan aliran kontrol ke pengecualian sehingga Anda dapat mencegah program Anda mogok dan bahkan menggunakan objek pengecualian untuk keuntungan Anda. Ini biasanya disebut sebagai "menangkap" pengecualian. Pernyataan try terlihat seperti ini mencoba Kode dengan pengecualian yang ingin Anda tangkap. Jika pengecualian dimunculkan, aliran kontrol segera meninggalkan blok ini dan menuju ke blok kecuali kecuali [(Pengecualian[, Pengecualian])] [sebagai VAR] Kode ini dijalankan hanya jika pengecualian dimunculkan di blok try. Kode yang dieksekusi di blok ini sama seperti kode biasa. jika ada pengecualian, itu tidak akan ditangkap secara otomatis (dan mungkin menghentikan program) Secara opsional, Anda dapat menyebutkan jenis pengecualian tertentu dalam pernyataan exception, dalam hal ini blok hanya akan dieksekusi jika salah satu dari pengecualian yang disebutkan adalah yang dimunculkan dalam try. Saat memberi nama beberapa pengecualian, gunakan tuple. Adalah legal untuk memiliki banyak pernyataan exception, yang masing-masing menyebutkan jenis pengecualian yang berbeda. Jika tidak ada pengecualian yang disebutkan dalam pernyataan kecuali, itu akan menangkap semua pengecualian; Menyertakan ekspresi as dengan pernyataan exception memungkinkan Anda untuk menyimpan objek pengecualian yang muncul di blok try dalam sebuah variabel dan menggunakannya di dalam blok ini. Untuk menyimpan pengecualian dalam variabel ketika tidak ada yang diberi nama, beri nama "Pengecualian" sebagai gantinya (mis. e. kecuali Pengecualian sebagai e). Hanya satu variabel yang dapat dicantumkan setelah as Blok ini diperlukan (walaupun semua sudah lulus) [kalau tidak. ] Kode ini dijalankan hanya jika tidak ada pengecualian yang dimunculkan di blok try. Kode yang dieksekusi di blok ini sama seperti kode biasa. jika ada pengecualian, itu tidak akan ditangkap secara otomatis (dan mungkin menghentikan program). Perhatikan bahwa jika blok else dijalankan, maka blok exception tidak dijalankan, dan sebaliknya. Blok ini opsional [akhirnya. ] Kode ini selalu dijalankan setelah blok lain, bahkan jika ada pengecualian yang tidak tertangkap (yang jelas tidak menyebabkan crash) atau pernyataan pengembalian di salah satu blok lainnya. Kode yang dieksekusi di blok ini sama seperti kode biasa. jika ada pengecualian, itu tidak akan ditangkap secara otomatis (dan mungkin menghentikan program). Blok ini juga opsional try & finally blok tidak semudah yang dibayangkan, terutama ketika mereka mengembalikan nilai dari suatu fungsi. Untuk informasi menarik lainnya, ikuti saya melalui Twitter. Kesimpulan dari postingan ini adalah Jawaban yang tepat akan bergantung pada tujuan logika aplikasi Anda. Anda ingin memastikan kode Python Anda tidak gagal secara diam-diam, menyelamatkan Anda dan rekan tim Anda dari keharusan memburu kesalahan yang mengakar kuat Inilah perbedaan antara _0 dan 1 saat menangani kegagalan di Python
Gunakan 0 ketika Anda tahu Anda menginginkan perilaku tertentu, seperti _Menaikkan pengecualian menghentikan aliran program Anda, memungkinkan pengecualian untuk meluapkan tumpukan panggilan. Dalam contoh di atas, ini memungkinkan Anda menangani 4 secara eksplisit nanti. Jika 4 tidak tertangani, eksekusi kode berhenti dan Anda akan mendapatkan pesan pengecualian yang tidak tertanganiNaikkan berguna dalam kasus di mana Anda ingin menentukan perilaku tertentu terjadi. Misalnya, Anda dapat memilih untuk melarang kata-kata tertentu di bidang teks
Raise mengambil contoh pengecualian, atau turunan dari. Ini semua Naikkan dapat membantu Anda menghindari fungsi penulisan yang gagal secara diam-diam. Misalnya, kode ini tidak akan memunculkan pengecualian jika 6 tidak ada _Untuk menyebabkan fungsi _7 benar-benar rusak, tambahkan 0
Setiap kali kode Anda berinteraksi dengan variabel eksternal, modul, atau layanan, ada kemungkinan kegagalan. Anda dapat menggunakan 0 dalam pernyataan 0 untuk membantu memastikan kegagalan tersebut tidak diamUntuk menangani kemungkinan kegagalan dengan mengambil tindakan jika ada, gunakan pernyataan
Ini memungkinkan Anda _5 sebelum memunculkan kembali pengecualian. Jika Anda ingin menyebarkan pengecualian yang tertangkap, gunakan 0 tanpa argumen untuk menghindari kemungkinan hilangnya jejak tumpukanJika Anda tidak tahu bahwa pengecualiannya adalah 7, Anda juga dapat menggunakan 8 atau menangkap turunan apa pun dari kelas 9 dengan 0. Jika memungkinkan, lebih baik menaikkan dan menangani pengecualian secara eksplisitGunakan _1 untuk mengeksekusi kode jika try tidak memunculkan pengecualian. Sebagai contoh
Anda juga dapat menempatkan garis cetak di dalam blok Saat Anda menggunakan 1 dengan Python, Anda mengembalikan nilai. Suatu fungsi kembali ke lokasi asal pemanggilannyaMeskipun lebih idiomatis untuk 0 kesalahan dalam Python, mungkin ada saat-saat di mana Anda menemukan 1 lebih dapat diterapkanMisalnya, jika kode Python Anda berinteraksi dengan komponen lain yang tidak menangani kelas pengecualian, Anda mungkin ingin mengembalikan pesan sebagai gantinya. Berikut adalah contoh menggunakan pernyataan ________36______ …
Perhatikan bahwa saat Anda mengembalikan objek kelas _9, Anda akan mendapatkan representasi dari nilai terkaitnya, biasanya item pertama dalam daftar argumennya. Pada contoh di atas, ini adalah penjelasan string dari exception. Dalam beberapa kasus, itu mungkin tuple dengan informasi lain tentang pengecualianAnda juga dapat menggunakan _1 untuk memberikan objek kesalahan tertentu, seperti dengan. Misalnya, Anda mungkin ingin mengembalikan 2 alih-alih 3 untuk alasan keamanan
Menggunakan _1 dapat membantu Anda menulis kode berisik yang tepat saat fungsi Anda diharapkan mengembalikan nilai tertentu, dan saat berinteraksi dengan elemen luarKegagalan diam-diam menciptakan beberapa bug yang paling membuat frustrasi untuk ditemukan dan diperbaiki. Anda dapat membantu menciptakan pengalaman pengembangan yang menyenangkan untuk diri sendiri dan tim Anda dengan menggunakan 0 dan 1 untuk memastikan bahwa kesalahan ditangani dalam kode Python AndaSaya menulis tentang praktik pengembangan yang baik dan cara meningkatkan produktivitas sebagai pengembang perangkat lunak. Anda bisa mendapatkan tips ini langsung di kotak masuk Anda dengan mendaftar di bawah ini Bisakah kita kembali kecuali dengan Python?Perilaku pengembalian dengan coba/kecuali dengan Python
. Python mendefinisikan coba/kecuali untuk menangani pengecualian dan melanjutkan eksekusi program lebih lanjut tanpa gangguan. User code can raise built-in exceptions. Python defines try/except to handle exceptions and proceed with the further execution of program without interruption.
Bagaimana cara mengembalikan pesan pengecualian dengan Python?Untuk menangkap dan mencetak pengecualian yang terjadi dalam cuplikan kode, bungkus kode tersebut dalam blok try berindentasi, diikuti dengan perintah "kecuali Pengecualian sebagai e" yang menangkap pengecualian dan . Anda sekarang dapat mencetak pesan kesalahan dengan "print(e)" atau menggunakannya untuk diproses lebih lanjut. . You can now print the error message with "print(e)" or use it for further processing.
Apakah boleh menggunakan cobaPython tidak menganut gagasan bahwa pengecualian hanya boleh digunakan untuk kasus luar biasa, sebenarnya idiomnya adalah 'minta maaf, bukan izin'. Ini berarti bahwa menggunakan pengecualian sebagai bagian rutin dari kontrol aliran Anda sangat dapat diterima, dan sebenarnya, dianjurkan .
Apa yang terjadi setelah Kecuali Python?pernyataan exception menjalankan kode di bawah pernyataan “try”. Jika kode ini tidak berhasil dijalankan, program akan berhenti di baris yang menyebabkan kesalahan dan kode "kecuali" akan berjalan . Blok coba memungkinkan Anda untuk menguji blok kode untuk kesalahan. |