如何使用Python中的try except BaseException語句?

WBOY
發布: 2023-05-09 08:34:07
轉載
1869 人瀏覽過

try ...except 是最常見的捕獲處理異常的結構,其主要作用是將可能出現問題的程式碼區塊用try :包裹起來,不至於出現錯誤讓程式崩潰,無法執行下去

常見的try ...excpet 的結構有三種

try:
     pass
except BaseException as e :
    异常处理模块
登入後複製

try 中包含著可能發生異常的程式碼,except 區塊中包含著,發生異常後,用來捕獲異常和處理異常代碼

如果在try包含的模組中發生了異常則會跳到except的模組中,去執行except中的程式碼,excpet中的模組會處理異常,如果沒有發生異常,則程式不會執行except中的程式碼。

書寫了一段用來測試會錯誤的程式碼區塊

try:
    test = eval(str(input("请输入一个字符串: ")))
    tests = test + "This is a piece of test code"
except BaseException as e:
    print("出现的错误可能是%s"%e)
print("这是一段测试输出")
登入後複製

如何使用Python中的try except BaseException語句?

錯誤提示:unsupported operand type(s) for : 'int' and 'str '

不支援:資料型別:「int」與「str」拼接( )操作

一段正確的程式碼輸入:

try:
    test = str(input("请输入一个字符串: "))
    tests = test + " "+"This is a piece of test code"
    print("输入正确的内容则会执行的代码块:",tests)
except BaseException as e:
    print("出现的错误可能是%s"%e)
print("这是一段测试输出")
登入後複製

如何使用Python中的try except BaseException語句?

字是不允許和字串拼接的只有把數字轉換成字串才允許拼接。

這是一段沒有用try except:處理的有問題程式碼區塊

如果不用try...except... :對可能出現的程式碼進行包裹,程式就會崩潰,影響後續程式碼進行

test = int(input("请输入一个字符串: "))
tests = test + " "+"This is a piece of test code"
print("这是一段测试输出")
登入後複製

如何使用Python中的try except BaseException語句?

多個except 語句、

如果寫入的程式碼出錯類型不太清楚,可以多寫幾個捕獲異常語句,記得在最後加上一個except BaseException 用來做兜底操作(假如出現的錯誤都不是你用except 捕獲的異常你可以用它來兜底),它是所有異常的父類包含了所有常見的異常

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)
登入後複製

上述操作和下面的操作表達的功能是一致的,你也可以將所有可能出現的異常寫在一個except 中,異常和異常之間用逗號隔開

arr = (1,2,3,4,5)
try:
    int("3.1415926")
    print(add)  # 未定义
    print(arr[6]) #超出索引
 
except (IndexError,NameError,ValueError)as e:
    print(e)
登入後複製

3 try... except... esle

如果try 中包含的程式碼區塊沒有異常,則會接著執行else 中的語句,不會去執行excpet中的程式碼區塊(這段程式碼只有在try中的程式碼塊拋出異常時,則會使用except去捕獲)

try:
    arr = int(input("请输入一个整数: "))
except BaseException as e:
    print(e)
else:
    arrs = arr + 111
    print(arrs)
print("测试结束")
登入後複製

如何使用Python中的try except BaseException語句?

#異常處理模組就講到這裡了,我要談到關於異常處理模組try except實際用途,有的部落客會談一些簡單的案例,可能有的同學對這個模組認識的並不是很深入,為什麼呢?

try:
   4 /0
except BaseException as e:
    print(e)
报错: division by zero
登入後複製

明明你知道是,除零操作,為什麼不改呢?有的錯誤你明明知道什麼?故意把錯誤寫出來,難道就是為了測試錯誤嗎?

所以經過我的考慮給了大家一個好玩的

登入密碼案例的操作,如果密碼輸入正確,則會提示登入成功,錯誤的話則會繼續輸入,錯誤輸入大於三次時就會提示:"輸入錯誤次數過多密碼已鎖定“

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)
登入後複製

這是關於“try... except... esle ”具有實際用途的一段代碼

提示你輸入密碼,然後根據密碼的內容進行適當的加密,拼接

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)
登入後複製

以上是如何使用Python中的try except BaseException語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板