Seperti kata pepatah, ada keadaan yang tidak terduga. Saat kita menulis program, tidak selalu bisa berjalan mulus ke bioskop, lalu selesai menonton. Kami pergi berbelanja setelah menonton film dan berjalan kembali ke rumah. Namun, setelah menonton film, kami menemukan di luar sedang hujan, Saat ini, kami harus membatalkan rencana belanja kami dan kembali ke rumah . Hujan di sini adalah situasi yang tidak normal, jadi kami merancang programnya. Saatnya menambahkan solusi penanganan pengecualian ini.
Pertama mari kita lihat masalah pengecualian . Kodenya adalah sebagai berikut:
angka=int(input('Masukkan angka:'))if15/angka>=3:print('ok')else:print('salah')
Hasil keluaran:
Silakan masukkan nomor: 3ok Silakan masukkan nomor: 15 salah Silakan masukkan nomor: 0Traceback(mostrecentcalllast):FileC:/Users/test.py,line2,in<module>if15/number>=3:ZeroDivisionError:divisionbyzero
Ketika penyebut yang kita masukan adalah 0, kita akan menemukan bahwa program tersebut melaporkan kesalahan, yang berarti ada masalah dengan program yang kita tulis. Karena kita tidak mempertimbangkan apa yang harus dilakukan ketika penyebutnya 0, terjadi pengecualian pada program tersebut , jadi kami menulis programnya. Anda perlu memperhitungkan beberapa situasi abnormal yang mungkin terjadi. Mari kita pelajari tentang beberapa situasi abnormal yang umum.
Ini adalah pengecualian yang terjadi ketika mengakses kunci kamus dan nilai kunci tidak ada.
Kodenya adalah sebagai berikut:
my_dict={'dotcpp':123}print(my_dict['dot'])
Pengecualiannya adalah sebagai berikut:
Traceback(panggilan terakhir terakhir):FileC:/Users/test.py,line2,in<module>print(my_dict['dot'])KeyError:'dot'
Pengecualian semacam ini lebih umum terjadi ketika kita mempelajari Python. Saat kita mengakses elemen urutan , mekanisme pengecualian ini akan dipicu ketika nilai indeks melebihi rentang.
daftar_saya=[1,2,3,4,5]cetak(daftar_saya[100])
Pengecualiannya adalah sebagai berikut:
Traceback(panggilan terakhir terakhir):FileC:/Users/test.py,line2,in<module>print(my_list[100])IndexError:listindexoutofrange
Hanya ada 5 elemen dalam daftar kami, dan pengecualian ini akan diberikan jika akses melebihi batas.
Pengecualian ini muncul ketika kita menggunakan variabel yang tidak ditentukan , kodenya adalah sebagai berikut:
nama=['www.dotcpp,com']print('Nama variabel yang ada:',nama)print('Variabel yang tidak ada dotcpp:',dotcpp)
Pengecualiannya adalah sebagai berikut:
Nama variabel yang ada:['www.dotcpp,com']Traceback(mostrecentcalllast):FileC:/Users/Qingyan/PycharmProjects/untitled1/teach/test.py,line3,in<module>print('Variabel dotcpp yang tidak ada: ',dotcpp)NameError:nama'dotcpp'tidak ditentukan
Pengecualian ini terjadi ketika data yang dikirimkan tidak sesuai dengan tipe yang ditentukan. Misalnya, ketika kita ingin menambah dan mengurangi dua bilangan bulat, dan salah satunya menggunakan tipe string, kesalahan ini akan terjadi.
Kodenya adalah sebagai berikut:
a=10b='dotcpp'cetak(a+b)
Pengecualiannya adalah sebagai berikut:
Traceback(panggilan terakhir terakhir):FileC:/Users/test.py,line3,in<module>print(a+b)TypeError:unsupportedoperandtype(s)for+:'int'and'str'
Di atas adalah beberapa pengecualian yang paling umum. Kami mungkin menemukan ValueError, OSError, AttributeError, dan pengecualian lainnya dalam proses pembelajaran. Saat kami menemukan pengecualian yang tidak kami kenali, kami dapat menanyakan konten yang relevan melalui dokumen bantuan.