Pengendalian Pengecualian Python

Pengendalian Pengecualian Python

Pengenalan

Python akan memberitahu anda apabila anda mendapat sintaks anda yang salah. Ia akan segera gagal dan tidak membenarkan program anda dijalankan.

Bagaimana pula apabila kod anda mempunyai jenis masalah yang berbeza? Mereka dipanggil pengecualian, dan mereka cenderung lebih sukar untuk ditangkap. Terpulang kepada anda untuk mengenali situasi di mana hei mungkin datang dan menangkap mereka untuk menghalang program anda daripada terhempas sama sekali.

Bayangkan senario di mana anda memerlukan input pengguna. Adakah anda mahu program anda terhempas setiap kali pengguna salah tipis sesuatu atau memasuki sesuatu yang salah? Itu jauh dari ideal. Oleh kerana anda tahu ada masalah di sana, anda boleh memberitahu Python untuk melihat satu, dan pulih dengan anggun.

Cuba dan kecuali

Apabila anda tahu ada peluang pengecualian akan muncul, anda meminta Python untuk mencuba sekeping kod dan mencari pengecualian. Lihatlah dalam konteks contoh nombor dari sebelumnya.

cuba: nombor = int (input ("Masukkan mana -mana nombor:")) kecuali: cetak ("yang tidak berfungsi ...") 

Sekarang, bukannya terhempas, program anda akan diteruskan, walaupun pengguna memasuki sampah.

Anda juga boleh memberitahu python dengan tepat jenis pengecualian untuk dicari. Dalam kes ini, ia akan menjadi ValueError.

cuba: nombor = int (input ("Masukkan mana -mana nombor:")) kecuali ValueError: cetak ("Anda tidak memasukkan nombor!") 

Sekiranya Python tahu jenis pengecualian yang dicari, anda boleh menceritakan bagaimana untuk bertindak balas dengan sewajarnya.

Buat sendiri

Anda boleh membuat pengecualian anda sendiri dengan menulisnya sebagai kelas yang mewarisi dari Pengecualian kelas asas atau salah satu kelas pengecualian yang lain.

Kelas NewException (Pengecualian): Lulus 

Anda mesti membina program anda bagaimana menggunakan pengecualian tersuai anda.

Meningkatkan pengecualian

Ada pilihan untuk meningkatkan pengecualian secara manual dengan kenaikan.

Cuba: Meningkatkan NewException kecuali NewException: Cetak ("Ia gagal seperti yang dirancang!") 

Pelbagai kecuali

Sekiranya anda menjangkakan bahawa terdapat lebih daripada satu pengecualian, anda boleh membina gandaan Cuba. Mulakan dengan membuat beberapa pengecualian tersuai.

Kelas Exceptiona (Pengecualian): Pass ExceptionB Kelas (Pengecualian): Lulus 

Sekarang, gunakannya dengan Cuba.

Cuba: menaikkan pengecualian kecuali (exceptiona, exceptionb): cetak ("ia sama ada a atau b") 

Sudah tentu, itu bukan yang terbaik kerana dalam senario sebenar, anda tidak akan tahu pengecualian mana yang sebenarnya berlaku.

Cuba gunakan berasingan kecuali klausa.

Cuba: Raise ExceptionB Kecuali Exceptiona: Print ("Exceptiona berlaku") Kecuali Exceptionb: Print ("ExceptionB berlaku") Kecuali: Cetak ("Sesuatu yang lain berlaku ...") 

Ketiga Kecuali bertindak untuk menangkap pengecualian lain. Itulah tingkah laku lalai apabila pengecualian tertentu tidak diberikan.

Lain dan akhirnya

Terdapat dua klausa tambahan untuk mengendalikan apa yang berlaku selepas pengecualian ditangani. Mereka membantu kod anda bertindak balas terhadap pengecualian.

The lain Fasal membolehkan anda menjalankan kod hanya jika pengecualian belum dibangkitkan.

cuba: nombor = int (input ("Masukkan mana -mana nombor:")) kecuali ValueError: cetak ("Anda tidak memasukkan nombor!") Lain: Cetak (nombor ** 2) 

Anda hanya mahu mencuba melakukan operasi pada nombor jika seseorang dimasukkan.

The Akhirnya Sebab akan berjalan tanpa mengira sebarang pengecualian. Ia akan selalu berjalan pada akhir Cuba blok.

cuba: nombor = int (input ("Masukkan mana -mana nombor:")) kecuali ValueError: cetak ("Anda tidak memasukkan nombor!") Lain: Cetak (Nombor ** 2) Akhirnya: Cetak (" Ini akan selalu dijalankan.") 

Pemikiran penutupan

Penting untuk memahami apa yang boleh salah dengan program anda. Sama pentingnya untuk mengetahui perkara itu akan salah. Dengan menyumbang pengecualian, anda boleh menjadikan kod anda stabil mungkin dan tidak menggagalkan pengguna anda.

Latihan

  1. Buat beberapa kod yang menimbulkan pengecualian yang tidak ditandakan.
  2. Gunakan blok cuba untuk mengendalikan pengecualian itu.
  3. Buat kelas pengecualian tersuai
  4. Naikkan pengecualian tersuai di blok cuba.
  5. Buat blok cuba dengan sekeping kod yang hanya berjalan jika pengecualian tidak dibangkitkan.

Tutorial Linux Berkaitan:

  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Mengendalikan input pengguna dalam skrip bash
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Cara merosakkan linux
  • Cara Menggunakan Adb Android Debug Bridge untuk Mengurus Android Anda ..
  • Tutorial Debugging GDB untuk Pemula
  • Perkara yang perlu dilakukan setelah memasang Ubuntu 22.04 Jur -ubur Jammy ..
  • Ubuntu 20.04 Panduan
  • Sistem Hung Linux? Cara melarikan diri ke baris arahan dan ..