語法錯誤(也稱為解析錯誤)可能是您在學習python時最常見的問題:
>>> while true print('hello world')
file "", line 1
while true print('hello world')
^syntaxerror: invalid syntax
解析器檢測出違規行,並顯示乙個指向檢測到錯誤的行中最早點的「箭頭」。
即使語句或表示式在語法上是正確的,但在嘗試執行它時可能會導致錯誤。
>>> 10 * (1/0)
traceback (most recent call last):
file "", line 1, in zerodivisionerror: division by zero
>>> 4 + spam*3
traceback (most recent call last):
file "", line 1, in nameerror: name 'spam' is not defined
>>> '2' + 2
traceback (most recent call last):
file "", line 1, in typeerror: can't convert 'int' object to str implicitly
最後一行顯示出異常發生
可以編寫處理特定異常的程式。
>>> while true:
... try:
... x = int(input("please enter a number: "))
... break
... except valueerror:
... print("oops! that was no valid number. try again...")
try語句可能有多個except子句,以指定不同異常的處理程式。
... except (runtimeerror, typeerror, nameerror):
... pass
最後乙個except子句可以省略異常名稱,以用作萬用字元。請謹慎使用,因為以這種方式很容易掩蓋真正的程式設計錯誤!
import sys
try:
f = open('myfile.txt')
s = f.readline()
i = int(s.strip())
except oserror as err:
print("os error: ".format(err))
except valueerror:
print("could not convert data to an integer.")
except:
print("unexpected error:", sys.exc_info()[0])
raise
try … except語句有乙個可選的else子句,必須緊跟所有except子句。如果try子句不引發異常,則必須執行else子句。例如:
for arg in sys.ar**[1:]:
try:
f = open(arg, 'r')
except oserror:
print('cannot open', arg)
else:
print(arg, 'has', len(f.readlines()), 'lines')
f.close()
觸發異常
raise語句允許程式設計師強制發生指定的異常。例如:
>>> raise nameerror('hithere')
traceback (most recent call last):
file "", line 1, in nameerror: hithere
自定義異常
程式可以通過建立新的異常類來命名它們自己的異常(有關python類的更多資訊,請參閱類)。異常通常應直接或間接地從exception類派生。
定義清理處理
try語句有另乙個可選子句,用於定義必須在所有情況下執行的清理操作。例如:
>>> try:
... raise keyboardinterrupt
... finally:
... print('goodbye, world!')
...goodbye, world!
keyboardinterrupt
traceback (most recent call last):
file "", line 2, in
CM5 x配置spark錯誤解決
通過cloudera manager 5.x新增spark服務,在建立服務過程中,發現spark服務建立失敗,可以通過控制台錯誤輸出看到如下日誌資訊 perl pi e s etc spark conf.cloudera.spark on yarn yarn conf g opt cm 5.9.2 ...
Python3 7安裝PyQt5的方法
一 系統環境 作業系統 win7 64位 python version 3.7 二 安裝參考 方法1 pip install pyqt5 b.點選download files 因我的電腦系統環境是win7 64位,python是3.7,所以選擇pyqt5 5.11.3 5.11.2 cp35.cp3...
python程式設計 5 錯誤與異常
1 異常處理 import sys try f open myfile.txt s f.readline i int s.strip except oserror as err print os error format err except valueerror print could not c...