
前言
大家好,我是辣條哥!今天給大家講講我們剛開始寫代碼是都會出現(xiàn)的問題-我們剛開始常見的異常以及處理方法!
異常是指在程序運行過程中出現(xiàn)的錯誤或異常情況,例如除以0、訪問不存在的變量等。Python提供了一些內(nèi)置的異常類型,同時也支持自定義異常類型。 |
想找辣條哥的話直接戳這里,辣條之前的一些Python相關(guān)都可以拿走:
十類異常
1.TypeError
當(dāng)操作或函數(shù)應(yīng)用于不適當(dāng)類型的對象時引發(fā)。
例如:
a = 5 + '10'
這個例子中,我們試圖將整數(shù)5和字符串’10’相加,這是不允許的,因為它們是不同的類型。
2.ValueError
當(dāng)函數(shù)或操作的參數(shù)具有正確的類型但不合法時引發(fā)。
例如:
int('abc')
這個例子中,我們試圖將字符串’abc’轉(zhuǎn)換為整數(shù),但是’abc’不是一個有效的整數(shù),因此會引發(fā)ValueError異常。
3.NameError
當(dāng)嘗試訪問一個未定義的變量時,會拋出NameError異常。
例如:
print(x)
這個例子中,我們嘗試打印變量x的值,但是x沒有被定義,因此會引發(fā)NameError異常。
4.IndexError
當(dāng)嘗試訪問列表、元組或字符串中不存在的索引時引發(fā)。
例如:
a = [1, 2, 3]
print(a[3])
這個例子中,我們試圖訪問列表a的第四個元素,但是a只有三個元素,因此會引發(fā)IndexError異常。
5.KeyError
當(dāng)嘗試訪問字典中不存在的鍵時引發(fā)。
例如:
d = {'a': 1, 'b': 2}
print(d['c'])
這個例子中,我們試圖訪問字典d中不存在的鍵’c’,因此會引發(fā)KeyError異常。
6.ZeroDivisionError
當(dāng)嘗試除以零時引發(fā)。
例如:
a = 5 / 0
這個例子中,我們試圖將5除以0,這是不允許的,因為除數(shù)不能為零,因此會引發(fā)ZeroDivisionError異常。
7.IOError
當(dāng)嘗試讀取不存在的文件或無法訪問文件時引發(fā)。
例如:
f = open('nonexistent_file.txt', 'r')
這個例子中,我們試圖打開一個不存在的文件nonexistent_file.txt,因此會引發(fā)IOError異常。
8.ImportError
當(dāng)嘗試導(dǎo)入不存在的模塊或包時引發(fā)。
例如:
import nonexistent_module
這個例子中,我們試圖導(dǎo)入一個不存在的模塊nonexistent_module,因此會引發(fā)ImportError異常。
9.AttributeError
當(dāng)嘗試訪問對象不存在的屬性時引發(fā)。
例如:
s = 'hello'
print(s.uppercase())
這個例子中,我們試圖調(diào)用字符串s的不存在的方法uppercase(),因此會引發(fā)AttributeError異常。
10.KeyboardInterrupt
當(dāng)用戶中斷程序執(zhí)行時引發(fā)。
例如:
while True:
try:
x = input('Enter a number: ')
break
except KeyboardInterrupt:
print('You pressed Ctrl+C!')
這個例子中,我們在一個無限循環(huán)中等待用戶輸入一個數(shù)字,但是如果用戶按下Ctrl+C,程序會引發(fā)KeyboardInterrupt異常,我們可以捕獲這個異常并打印一條消息。
異常捕獲以及處理
在Python中,可以使用try-except語句來捕獲異常并進(jìn)行處理。try語句塊中包含可能會出現(xiàn)異常的代碼,如果出現(xiàn)異常,則會跳轉(zhuǎn)到except語句塊中進(jìn)行處理??梢允褂枚鄠€except語句塊來處理不同類型的異常,也可以使用一個except語句塊來處理所有類型的異常。
例如:
try:
x = 1 / 0
except ZeroDivisionError:
print("除以0錯誤")
除了使用內(nèi)置的異常類型,還可以自定義異常類型。自定義異常類型通常繼承自Exception類或其子類。例如:
class MyException(Exception):
pass
try:
raise MyException("自定義異常")
except MyException as e:
print(e)
在Python中,還可以使用finally語句塊來定義無論是否出現(xiàn)異常都需要執(zhí)行的代碼。例如:
try:
x = 1 / 0
except ZeroDivisionError:
print("除以0錯誤")
finally:
print("finally語句塊")
總結(jié)
以上是Python中常見的異常類型和異常處理方法。在編寫程序時,應(yīng)該盡可能地避免出現(xiàn)異常情況,同時也應(yīng)該合理地處理可能出現(xiàn)的異常。文章來源:http://www.zghlxwxcb.cn/news/detail-480509.html
文章來源地址http://www.zghlxwxcb.cn/news/detail-480509.html
到了這里,關(guān)于Python十類常見異常類型(附捕獲以及異常處理方式)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!