Python AssertionError

Python Assertionerror



Apabila program Python menghadapi keadaan yang tidak dijangka semasa berjalan, program menghentikan pelaksanaan dan mengembalikan pengecualian. Dalam Python, pengecualian dan ralat sintaks ialah dua kategori utama ralat. Apabila sekeping kod Python yang sah secara sintaksis mencipta ralat, ia dikenali sebagai menimbulkan pengecualian/ralat. Mesej ralat dalam baris terakhir mentakrifkan jenis pengecualian yang tepat dan memberikan penerangan untuk membantu dalam penyahpepijatan dan anak panah menghala ke baris atau lokasi tempat pengecualian berlaku. Menangkap dan mengurus pengecualian adalah penting untuk mengelakkan ranap program secara tiba-tiba. Gunakan cara berbeza untuk melaksanakan kod. Sebagai contoh, apabila pengecualian yang ditentukan berlaku. Tutorial ini akan membincangkan AssertionError dan bagaimana anda boleh menyelesaikannya dalam Python.

Apakah AssertionError dalam Python?

Ralat penegasan ialah konsep pengaturcaraan yang berlaku apabila pengaturcara menulis atau membuat blok kod yang digunakan untuk mengisytiharkan kriteria atau syarat untuk dipenuhi sebelum modul dijalankan. Seperti mana-mana ralat Python, kawalan dipindahkan ke baris kod berikutnya jika syarat dinyatakan apabila penegasan diisytiharkan benar. Jika ia palsu, sebaliknya, ralat atau pengecualian dibangkitkan dan program dihentikan. Pernyataan tegas boleh digunakan dalam pelbagai bahasa pengaturcaraan dengan sintaks khusus mereka kerana ia bebas daripada bahasa. Ia adalah subkelas atau contoh kelas Pengecualian. Python AssertionError mempunyai sintaks berikut:

Sintaks: menegaskan syarat, error_message (pilihan)







Contoh

Kami akan memasukkan umur seseorang sebagai input dan jika kurang daripada sifar, konsol akan menimbulkan ralat penegasan.





Sekarang, bagaimana jika kita memasuki usia kurang daripada 0?





Menyahpepijat kod anda menggunakan kaedah ini adalah lebih mudah, sekali gus menjadikannya lebih mudah untuk mencari ralat dan membetulkan pepijat dalam program.



Bagaimana AssertionError Berfungsi dalam Python

Bahasa Python termasuk pernyataan tegas yang boleh digunakan untuk menghasilkan output mesej ralat mudah dengan pernyataan logik. Apabila pernyataan penegasan gagal, “pengecualian” AssertionError dinaikkan. Dalam Python, kelas pengecualian diperolehi daripada kelas BaseException. Kelas BaseException, yang juga merupakan kelas asas bagi kelas AssertionError, adalah tempat asal kelas Exception. Perlu sentiasa ada kod pengendalian pengecualian yang sesuai untuk menangani kegagalan pernyataan tegasan apabila kod tersebut digunakan. Pengendali pengecualian lalai dalam Python akan mencetak mesej ralat yang ditulis pengaturcara, tetapi ralat itu juga boleh dikendalikan atau diselesaikan tanpa mesej ralat.

Melaksanakan AssertionError dalam Python

Berikut ialah beberapa contoh AssertionError dalam Python:

Contoh

Dalam contoh ini, kami akan menulis program Python untuk memaparkan AssertionError dalam program yang mencari kawasan bulatan.

Nilai jejari 'r' dihantar sebagai input kepada fungsi dalam program sebelumnya yang dicipta untuk mencari luas bulatan. Pernyataan tegas kemudian digunakan untuk menentukan sama ada nilai yang dibekalkan atau jejari 'r' adalah di bawah sifar, dan jika nilai negatif dibekalkan kepadanya, pengecualian akan dinaikkan. Luas bulatan akan dikembalikan berdasarkan nilai jejari “r” yang dibekalkan kepada fungsi tersebut. Pertama, fungsi dilaksanakan dengan nilai r sebagai 3. Fungsi tersebut kemudiannya dilaksanakan dengan nilai 2.5. AssertionError dinaikkan apabila kita menggunakan nilai negatif 'r', iaitu, '-1'.

Mari cuba contoh lain untuk memaparkan kejadian ralat Penegasan.

Contoh

Dalam contoh ini, program akan menentukan sama ada nilai penyebut adalah bukan sifar.

Mesej ralat ralat penegasan dipaparkan dalam program sebelumnya. Kami telah mencipta dua pembolehubah (a dan b), dan nilai integer menentukan pembolehubah. Pembolehubah kedua, iaitu, b kemudian diuji untuk melihat sama ada ia tidak sama dengan 0 menggunakan pernyataan tegas. Jika tidak dinyatakan, mesej ralat dicetak. Jika tidak, hasil pembahagian nombor pertama dengan nilai kedua dipaparkan. Dalam imej sebelumnya, output program dipaparkan.

Aplikasi AssertionError

Penggunaan lain yang berfaedah bagi ralat penegasan termasuk:

  • Penegasan membantu dalam menilai nilai parameter
  • Penegasan membantu dalam memantau jenis input dan sama ada nilai itu sah
  • Selain itu, penegasan membantu dalam mengenal pasti sama ada pembangun kod lain menyalahgunakan antara muka
  • Penegasan membantu dalam memantau secara berterusan output program

Bagaimana Kami Boleh Mengelakkan Ralat Tegas dalam Python

  1. Bendera -O dalam program Python boleh digunakan untuk melumpuhkan setiap pernyataan penegasan. Adalah penting untuk diingat bahawa pernyataan yang datang selepas pernyataan penegasan tidak akan dilaksanakan jika kami melumpuhkan pernyataan penegasan.
  2. Pembolehubah persekitaran juga boleh menetapkan bendera untuk mematikan pernyataan penegasan. Semua proses dan aplikasi yang menggunakan atau mewarisi alam sekitar terjejas dalam situasi ini.
  3. Dalam Python, pendekatan paling mudah untuk mencegah ralat penegasan adalah dengan mengendalikannya secara manual. Jika kami memastikan bahawa aliran kawalan program dialihkan supaya ia tidak mengakses pernyataan assert, maka tiada peluang untuk ralat penegasan.

Mengendalikan AssertionError

Selain pernyataan penegasan, kami juga boleh mengendalikan ralat penegasan menggunakan kaedah berikut:

Mengendalikan Ralat Penegasan Menggunakan Blok Try-Except

Pernyataan tegas menentukan sama ada nilai adalah sama. Blok cuba menimbulkan ralat AssertionError kerana integer ini tidak sama. Perintah cetak dilaksanakan selepas blok kecuali telah menangkap pengecualian. Di sini, keluaran penyata cetakan daripada blok pengecualian dipaparkan. Kata kunci kenaikan boleh digunakan untuk menaikkan semula ralat dalam blok kecuali supaya kami boleh menentukan sumber pengecualian. Apabila pengecualian berlaku, kata kunci 'naikkan' akan menimbulkan ralat dan menamatkan program. Ia membantu dalam mengekalkan atau menyimpan rekod/jejak pengecualian sedia ada.

Mengendalikan AssertionError Menggunakan Modul jejak balik

Apabila kod mengandungi beberapa pernyataan tegas, modul jejak balik membantu dalam mengenal pasti sumber ralat yang tepat.

Menggunakan modul jejak balik, pernyataan cetakan kami boleh ditulis dengan ruang letak {}.

Selain itu, kami boleh menentukan pembolehubah lain untuk menyimpan kedudukan baris, nama fail, nama kaedah serta teks/mesej tempat pengecualian berlaku.

Objek jejak balik dirujuk sebagai 'tb'. Kami menggunakan dua ruang letak: satu untuk teks dan satu untuk kedudukan baris dalam pernyataan cetakan.

Tiga komponen pernyataan 'naikkan' — jenis_exc, penjejak_balik dan nilai_exc — dikembalikan oleh fungsi sys.exc_info().

Mengendalikan AssertionError Menggunakan Pernyataan cetak

Untuk mengendalikan pengecualian secara manual, kami boleh menggunakan pernyataan 'cetak' di dalam blok kecuali.

Kenyataan cetakan mencetak sebarang mesej ralat yang dimasukkan oleh pengguna. Dengan kaedah ini, ralat teknikal tidak akan membimbangkan pengguna.

Daripada ralat, mesej ringkas dipaparkan.

Kesimpulan

Dalam siaran ini, kami mula-mula melihat pengenalan pengecualian dalam Python. Kami membincangkan AssertionError, cara ia berfungsi dan bagaimana kami boleh melaksanakan AssertionError dalam Python. Kami menerangkan beberapa kelebihan AssertionError dan cara kami boleh mengelakkannya. Dalam bahagian terakhir siaran ini, kami melihat cara kami boleh mengendalikan AssertionError dalam Python menggunakan Try-Except Blocks, modul jejak balik dan pernyataan cetak.