Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk menggunakan cuba kecuali pernyataan BaseException dalam Python?
cuba ...kecuali ialah struktur yang paling biasa untuk menangkap dan mengendalikan pengecualian Fungsi utamanya ialah untuk membalut blok kod yang mungkin menyebabkan masalah dengan cubaan: untuk mengelakkan ralat daripada menyebabkan program ranap dan menjadikannya mustahil untuk dilaksanakan.
Terdapat tiga cubaan biasa...struktur excpet
try: pass except BaseException as e : 异常处理模块
cuba mengandungi kod program yang mungkin menyebabkan pengecualian dan blok except mengandungi kod yang digunakan untuk menangkap pengecualian dan mengendalikan pengecualian selepas pengecualian berlaku
Jika pengecualian berlaku dalam modul yang disertakan dalam percubaan, ia akan melompat ke modul kecuali untuk melaksanakan kod dalam kecuali. Jika tiada pengecualian berlaku, program tidak akan dilaksanakan kod dalam kecuali.
Ditulis blok kod yang akan melaporkan ralat untuk ujian
try: test = eval(str(input("请输入一个字符串: "))) tests = test + "This is a piece of test code" except BaseException as e: print("出现的错误可能是%s"%e) print("这是一段测试输出")
Mesej ralat: jenis operan tidak disokong untuk +: 'int' dan ' str'
tidak disokong: Jenis data: "int" dan "str" operasi penggabungan (+)
Input kod yang betul:
try: test = str(input("请输入一个字符串: ")) tests = test + " "+"This is a piece of test code" print("输入正确的内容则会执行的代码块:",tests) except BaseException as e: print("出现的错误可能是%s"%e) print("这是一段测试输出")
Perkataan tidak dibenarkan disambung dengan rentetan Hanya nombor yang ditukar menjadi rentetan sahaja dibenarkan untuk disambung.
Ini ialah blok kod bermasalah yang tidak diproses melalui percubaan kecuali:
Jika cuba...kecuali... tidak digunakan: untuk membungkus kod yang mungkin, atur cara akan ranap. Mempengaruhi pelaksanaan kod seterusnya
test = int(input("请输入一个字符串: ")) tests = test + " "+"This is a piece of test code" print("这是一段测试输出")
Berbilang kecuali pernyataan,
Jika jenis ralat kod bertulis tidak jelas, anda boleh menulis beberapa pengecualian tangkapan lagi statements , ingat untuk menambah kecuali BaseException pada penghujung untuk operasi penutup (jika ralat yang berlaku bukan pengecualian yang anda dapati kecuali, anda boleh menggunakannya untuk menutup), ia adalah kelas induk bagi semua pengecualian dan mengandungi semua pengecualian biasa
arr = { "xiaomi":"123", "xiaozhang":"456", "xiaodede":"7,8,9" } arrs = (1,2,3,4,5) try: 3 / 0 print(arrs[6]) except IndexError : print('导入包失败') except KeyError : print('在字典中找不到指定的键') except ImportError : print("索引时没有找到指定序列") #兜底捕获错误,BaseException 是所有错误的父类可以说是包含了所有常见的错误 except BaseException as e: print(arr["mayuanyuan"]) print(e)
Fungsi yang dinyatakan oleh operasi di atas adalah konsisten dengan operasi berikut Anda juga boleh menulis semua pengecualian yang mungkin dalam pengecualian dipisahkan dengan koma
arr = (1,2,3,4,5) try: int("3.1415926") print(add) # 未定义 print(arr[6]) #超出索引 except (IndexError,NameError,ValueError)as e: print(e)
3 percubaan ... kecuali... esle
Jika tiada pengecualian dalam blok kod yang terkandung dalam try, pernyataan in else akan dilaksanakan dan blok kod dalam excpet tidak akan dilaksanakan (kod ini hanya dalam cuba Apabila blok kod melemparkan pengecualian, kecuali akan digunakan untuk menangkapnya)
try: arr = int(input("请输入一个整数: ")) except BaseException as e: print(e) else: arrs = arr + 111 print(arrs) print("测试结束")
Itu sahaja untuk modul pengendalian pengecualian cuba Kecuali untuk kegunaan praktikal, sesetengah blogger akan bercakap tentang beberapa kes mudah Sesetengah pelajar mungkin tidak mempunyai pemahaman yang mendalam tentang modul ini.
try: 4 /0 except BaseException as e: print(e) 报错: division by zero
Anda pasti tahu ia adalah operasi bahagi dengan sifar, mengapa anda tidak menukarnya? Apakah kesilapan yang anda tahu dengan jelas? Adakah kerana saya sengaja menulis kesilapan hanya untuk mengujinya?
Jadi selepas pertimbangan saya, saya memberi anda keseronokan
operasi kes kata laluan log masuk Jika kata laluan dimasukkan dengan betul, ia akan menggesa bahawa log masuk itu berjaya terus dimasukkan. Input yang salah adalah lebih besar daripada Selepas tiga kali, ia akan menggesa: "Kata laluan telah dikunci selepas memasukkan terlalu banyak ralat yang salah"
i = 0 while True: if i == 3: print("输入错误次数过多密码已锁定") break try: Divisor = str(input("请输入一个整数: ")) # A = Divisor/1 # B = A+1 #如果输出有误就不会执行加1操作直接跳到 except当中 # print("结果是:",B) mima = 'ma123' if Divisor == mima: i = i+1 print("登录成功,输入%s次"%i) break except: i = i+1 print("密码输入错误请重新输入:") print("登陆了%s次"%i)
Ini adalah sekeping kod dengan kegunaan praktikal untuk "cuba ... kecuali... esle"
Petua Anda masukkan kata laluan, dan kemudian kandungan kata laluan disulitkan dan disambungkan dengan sewajarnya
md5 = [] try: Divisor = str(input("请输入你的密码: ")) except: print("密码输入错误") else: for i in Divisor: if i == 1: i = "a" else: i == 2 i = "b" md5.append(i) MD5 = Divisor + md5[0] print("经过加密后的数据%s"%MD5)
Atas ialah kandungan terperinci Bagaimana untuk menggunakan cuba kecuali pernyataan BaseException dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!