就是在程式執行過程中不可避免的出現一些錯誤,如變數未定義、索引越界等。
程式中一旦出現異常會導致程式執行終止。即異常後的**不會執行。
程式出現異常的時候並不是讓我們的程式直接終止。python希望在出現異常的時候,希望我們編寫相應的**來書寫。
try語句:
try:
**塊(可能出現的錯誤語句)
except:
**塊(出現錯誤後處理的方式)
else:
**塊(沒有出錯時需要執行的語句)
案例
print
('哈哈')
try:
print(10
/0)#該地方可能出錯
except
:print
('真的出錯了'
)else
:print
('沒有出錯'
)print
('嘻嘻')哈哈
真的出錯了
嘻嘻
當在函式**現異常時,如果在函式中對異常進行了處理,則異常不會在進行傳播。如果函式中沒有對異常進行處理,則異常會繼續向函式呼叫傳播。如果函式呼叫處處理了異常,則不再傳播異常,如果沒有處理則繼續向呼叫處傳播。直到傳遞到全域性作用域(主模組)如果依然沒有處理,則程式終止,並顯示異常資訊。
當程式執行過程中,出現異常以後,所有的異常資訊會儲存到乙個專門的異常物件當中,而異常傳播時,實際上市異常的物件拋給了呼叫處。
-(1) except 後面不跟任何內容,則此時它會捕獲所有異常
except 後面不跟任何內容,則此時它會捕獲所有異常
print
('哈哈')
try:
print
(a)print(10
/0)#該地方可能出錯
except
:print
('真的出錯了'
)else
:print
('沒有出錯'
)print
('嘻嘻')哈哈
真的出錯了
嘻嘻
如果需要顯示具體的乙個異常,則需要在except
後面跟異常物件。
```python
print
('哈哈')
try:
print
(a)print(10
/0)#該地方可能出錯,屬於zerodivisionerror異常
except nameerror:
print
('出現nameerror異常'
)except zerodivisionerror:
print
('出現zerodivisionerror異常'
)print
('嘻嘻')哈哈
出現zerodivisionerror異常
嘻嘻
except exception as e
print
('出現遺產',e,type
(e))
print
('異常出現'
)
try語句:
try:
**塊(可能出現的**塊)
except 異常型別 as 異常名:
**塊(出錯錯誤之後的處理方式)
except 異常型別 as 異常名:
**塊(出錯錯誤之後的處理方式)..
....
....
....
..else:
**塊(沒有出錯執行的**塊)
finally
: **塊(不管有沒有出錯,該**塊總會執行)
python基礎之異常
語法 try 嘗試執行的 except 出現錯誤的處理 try 嘗試執行的 except 錯誤型別1 針對錯誤型別1,對應的 處理 except 錯誤型別2,錯誤型別3 針對錯誤型別2和3,對應的 處理 except exception as result print 未知錯誤 s result e...
python基礎之異常
print hello try try中放置的是有可能出現錯誤的 print 10 0 except except中放置的是出錯以後的處理防暑 print 哈哈哈,出錯了 else print 程式正常執行沒有錯誤 print 你好 print 10 0 def fn print hello fn ...
Python基礎之異常
異常是程式執行時發生錯誤的訊號,每當發生讓python不知所措的錯誤時,都會建立乙個建立乙個異常物件。若異常未處理,程式將停止執行,並顯示乙個traceback n elk n 儲存的是 elk 再將它轉換成int時,將丟擲乙個異常 int n 以下為執行結果 attributeerror 試圖訪問...