Python 異常處理

2021-10-06 00:15:27 字數 3191 閱讀 9228

在程式執行過程中發生的任何錯誤都是異常,每個異常顯示一些相關的錯誤資訊。

# syntaxerror

# 在 python3 中使用 python2 獨有的語法就會發生syntaxerror:

>>

>

print

'hello'

file ""

, line 1

print

'hello'

^syntaxerror: missing parentheses in call to 'print'

# indentationerror

# 在行首多打了乙個空格就會產生indentationerror:

>>

>

print

('nihao'

) file ""

, line 1

print

('nihao')^

indentationerror: unexpected indent

# nameerror

# 當訪問乙個未定義的變數則會發生`nameerror`。最後一行包含了錯誤的詳細資訊,其餘行顯示它是如何發生(或什麼引起該異常)的詳細資訊。

>>

>

print

(kushal)

traceback (most recent call last)

: file ""

, line 1,in

nameerror: name 'kushal'

isnot defined

# typeerror

# typeerror 也是一種經常出現的異常。當操作或函式應用於不適當型別的物件時引發,乙個常見的例子是對整數和字串做加法。

>>

>

print(1

+"kushal"

)traceback (most recent call last)

: file ""

, line 1,in

typeerror: unsupported operand type

(s)for+:

'int'

and'str'

我們使用 try…except 塊來處理任意異常。

try

: statements to be inside try clause

statement2

statement3

...except exceptionname:

工作過程為:

>>

>

defget_number()

:...

"returns a float number"..

. number =

float

(input

("enter a float number: "))

...return number..

.>>

>

>>

>

while

true:.

..try:..

.print

(get_number())

...except valueerror:..

.print

("you entered a wrong value.").

..enter a float number:

45.0

45.0

enter a float number:24,

0you entered a wrong value.

enter a float number: traceback (most recent call last)

: file ""

, line 3,in

file ""

, line 3

,in get_number

keyboardinterrupt

示例工作過程為:

乙個空的 except 語句能捕獲任何異常。

>>

>

try:..

.input()

# 輸入的時候按下 ctrl + c 產生 keyboardinterrupt..

.except:.

..print

("unknown exception").

..unknown exception

使用 raise 語句丟擲乙個異常。

>>

>

raise valueerror(

)traceback (most recent call last)

: file ""

, line 1,in

我們可以捕獲任何其它普通異常一樣,來捕獲這些異常。

>>

>

try:..

.raise valueerror().

..except valueerror:..

.print

("valueerror in our code.").

..valueerror in our code.

try 語句還有另乙個可選的 finally 子句,目的在於定義在任何情況下都一定要執行的功能。例如:

>>

>

try:..

.raise keyboardinterrupt..

.finally:.

..print

('goodbye, world!').

..goodbye, world!

keyboardinterrupt

traceback (most recent call last)

: file ""

, line 2

,in ?

不管有沒有發生異常,finally 子句 在程式離開 try 後都一定會被執行。當 try 語句中發生了未被 except 捕獲的異常(或者它發生在 except 或 else 子句中),在 finally 子句執行完後它會被重新丟擲。

在真實場景的應用程式中,finally 子句用於釋放外部資源(檔案或網路連線之類的),無論它們的使用過程中是否出錯。

python異常處理 Python 異常處理

使用者輸入不完整 比如輸入為空 或者輸入非法 輸入不是數字 異常就是程式執行時發生錯誤的訊號,在python中,錯誤觸發的異常如下 在python中不同的異常可以用不同的型別 python中統一了類與型別,型別即類 去標識,不同的類物件標識不同的異常,乙個異常標識一種錯 觸發indexerror 觸...

python異常舉例 Python異常處理

1.1異常問題舉例 例一 i input 請輸入數字 請輸入數字 0 print i print 5 int i traceback most recent call last file line 1,in zerodivisionerror division by zero 上述 的報錯是除零的錯...

python異常處理

當你的程式中出現異常情況時就需要異常處理。比如當你開啟乙個不存在的檔案時。當你的程式中有一些無效的語句時,python會提示你有錯誤存在。下面是乙個拼寫錯誤的例子,print寫成了print。python是大小寫敏感的,因此python將引發乙個錯誤 print hello world file l...