python中try的使用方法詳解
python中try的使用
在 Python 中,try 是用于異常處理的關(guān)鍵字。try 語句的語法如下:
try:
# 可能會拋出異常的語句塊
except ExceptionType1:
# 處理 ExceptionType1 異常的語句塊
except ExceptionType2:
# 處理 ExceptionType2 異常的語句塊
else:
# 如果沒有異常發(fā)生,執(zhí)行的語句塊
finally:
# 不管有沒有異常,都會執(zhí)行的語句塊其中,try 語句塊中的代碼可能會拋出異常,如果拋出了異常,則會在 try 語句塊中斷,并跳轉(zhuǎn)到對應(yīng)的 except 語句塊中處理異常。except 語句塊中可以指定要處理的異常類型,如果拋出的異常是指定類型的異常,則會執(zhí)行對應(yīng)的 except 語句塊中的代碼。
如果在 try 語句塊中沒有拋出異常,則會執(zhí)行 else 語句塊中的代碼。finally 語句塊中的代碼不管有沒有異常都會執(zhí)行。
以下是一個簡單的例子,演示了 try 語句塊的使用:
try:
x = int(input("請輸入一個整數(shù): "))
print("輸入的整數(shù)是:", x)
except ValueError:
print("輸入錯誤:請輸入整數(shù)")
else:
print("沒有發(fā)生異常")
finally:
print("程序執(zhí)行完畢")在這個例子中,try 語句塊中的代碼嘗試將用戶輸入轉(zhuǎn)換成整數(shù),并輸出轉(zhuǎn)換后的結(jié)果。如果用戶輸入的不是整數(shù),則會拋出 ValueError 異常,然后跳轉(zhuǎn)到對應(yīng)的 except 語句塊中處理異常。在 except 語句塊中,我們輸出了一條錯誤消息,告訴用戶輸入錯誤。在 else 語句塊中,我們輸出了一條消息,表示沒有發(fā)生異常。在 finally 語句塊中,我們輸出了一條消息,表示程序執(zhí)行完畢,無論有沒有發(fā)生異常都會執(zhí)行。
自定義異常
ValueError 是 Python 內(nèi)置的異常類型之一,它通常表示某個函數(shù)或方法收到的參數(shù)無效或不合法。例如,在嘗試將一個字符串轉(zhuǎn)換為整數(shù)時,如果字符串不是一個合法的數(shù)字,則會拋出 ValueError 異常。
在 Python 中,除了內(nèi)置的異常類型,也可以自定義異常類型。為了自定義一個異常類型,可以定義一個新的類,并繼承自 Exception 類或其它內(nèi)置的異常類型。例如,以下代碼定義了一個自定義的異常類型 MyError:
class MyError(Exception):
pass定義了 MyError 異常類型之后,就可以在程序中拋出這個異常。例如:
def my_function(x):
if x < 0:
raise MyError("x不能小于0")
else:
return x * 2
try:
result = my_function(-1)
except MyError as e:
print("發(fā)生了自定義異常:", e)
else:
print("結(jié)果是:", result)在這個例子中,我們定義了一個名為 my_function() 的函數(shù),用于接收一個數(shù)字 x,并將其乘以 2。如果 x 是一個負數(shù),則會拋出 MyError 異常,并輸出錯誤消息。在 try 語句塊中,我們調(diào)用了 my_function(-1),由于 -1 是一個負數(shù),因此會拋出 MyError 異常。在 except 語句塊中,我們捕獲了這個異常,并輸出了錯誤消息。在 else 語句塊中,我們輸出了計算結(jié)果。
內(nèi)置異常
Python 中內(nèi)置的異常類型非常多,可以用來處理不同類型的錯誤。以下是 Python 3.9.6 版本中內(nèi)置的常見異常類型及其說明:
Exception:所有異常的基類。AttributeError:對象沒有這個屬性。EOFError:沒有內(nèi)建輸入,到達了 EOF 標記。FileExistsError:在創(chuàng)建文件或目錄時,發(fā)現(xiàn)文件或目錄已經(jīng)存在。FileNotFoundError:文件或目錄不存在。ImportError:模塊導(dǎo)入失敗。IndexError:序列中沒有這個索引。KeyError:映射中沒有這個鍵。KeyboardInterrupt:用戶中斷執(zhí)行。MemoryError:內(nèi)存溢出錯誤。NameError:未聲明/初始化對象(沒有屬性)。NotImplementedError:抽象方法沒有實現(xiàn)。OSError:操作系統(tǒng)錯誤,例如文件打開/讀取錯誤。OverflowError:數(shù)值運算超出最大值。RecursionError:遞歸嵌套太深。RuntimeError:通用運行時錯誤。StopIteration:迭代器沒有更多的值。SyntaxError:語法錯誤。IndentationError:縮進錯誤。TabError:Tab 和空格混用。SystemError:解釋器內(nèi)部錯誤。TypeError:操作或函數(shù)應(yīng)用于不適當?shù)念愋汀?/li>UnboundLocalError:訪問未初始化的本地變量。UnicodeError:Unicode 相關(guān)的錯誤。ValueError:操作或函數(shù)接收到的參數(shù)具有不正確的值。ZeroDivisionError:除數(shù)為零。
需要注意的是,這只是 Python 中內(nèi)置的一部分異常類型,還有許多其他的異常類型,而且還可以自定義異常類型。在編寫代碼時,可以根據(jù)需要選擇適當?shù)漠惓n愋蛠硖幚礤e誤。
總結(jié)
到此這篇關(guān)于python中try的使用方法的文章就介紹到這了,更多相關(guān)python try的使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
pytorch下使用LSTM神經(jīng)網(wǎng)絡(luò)寫詩實例
今天小編就為大家分享一篇pytorch下使用LSTM神經(jīng)網(wǎng)絡(luò)寫詩實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01
python中常用檢測字符串相關(guān)函數(shù)匯總
這篇文章主要介紹了python中常用檢測字符串相關(guān)函數(shù),實例匯總了Python針對字符串數(shù)字、字母、大小寫等常用檢測函數(shù),非常具有實用價值,需要的朋友可以參考下2015-04-04
python os.path.isfile()因參數(shù)問題判斷錯誤的解決
今天小編就為大家分享一篇python os.path.isfile()因參數(shù)問題判斷錯誤的解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Python中數(shù)字以及算數(shù)運算符的相關(guān)使用
這篇文章主要介紹了Python中數(shù)字以及算數(shù)運算符的相關(guān)使用,是Python入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下2015-10-10
python+numpy+matplotalib實現(xiàn)梯度下降法
這篇文章主要為大家詳細介紹了python+numpy+matplotalib實現(xiàn)梯度下降法,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-08-08
python3實現(xiàn)ftp服務(wù)功能(服務(wù)端 For Linux)
這篇文章主要介紹了python3實現(xiàn)ftp服務(wù)功能,服務(wù)端 For Linux,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03

