在程式執行過程中發生的任何錯誤都是異常,每個異常顯示一些相關的錯誤資訊。
# 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...