當乙個程式執行時報錯,可以通過python異常處理機制忽略錯誤或者以友好的方式提示錯誤
vim day8-2.py
#!/usr/bin/python錯誤有很多種可以定義對於某一種異常進行處理# -*- coding:utf-8 -*-
try:
input = raw_input()
data = int(input)
print data
except exception,e:
print '請輸入數字'
#!/usr/bin/pythonps:可以在最後加 except exception,e:處理所有無法**到的錯誤# -*- coding:utf-8 -*-
try:
dic =
dic['ddd']
except indexerror,e: #如果出現indexerror錯誤執行下面的
print 'errot',e
except keyerror,e: #如果出現keyerror錯誤執行下面的
print e
except typeerror,e: #如果出現keyerror錯誤執行下面的
print e
#如果以上錯誤均為出現則報錯
以上的捕獲異常**異常,還有一種異常是主動觸發異常,如果是自己想讓**出現異常
建立乙個模組helper.py提供了很多公共的元件
#!/usr/bin/pythonvim day8-4.py# -*- coding:utf-8 -*-
def f1():
return false
def f2():
pass
def f3():
pass
#!/usr/bin/python在裡面呼叫另外的模組如果另外的模組執行錯誤則主動觸發乙個異常(這裡通過f1返回false強行觸發錯誤)並且封裝到e裡面,然後列印出來# -*- coding:utf-8 -*-
import helper
if __name__ == '__main__':
try:
n = "1"
n = int(n)
ret = helper.f1()
if ret:
print 'chenggong'
else:
# print 'shibai'
raise exception('error')
except exception,e:
print "出現錯誤"
print e
#記錄日誌,e
自定義異常
vim day8-5.py
class alexerror(exception):以上自定義異常輸出一直不變修改**動態更新異常def __str__(self):
return 'alex error'
try:
raise alexerror()
except exception,e:
print e
#!/usr/bin/python異常及為傳遞的字串# -*- coding:utf-8 -*-
class alexerror(exception): #定義類繼承exception
def __init__(self,msg=none):
self.message = msg
def __str__(self):
if self.message:
return self.message
else:
return 'alex error'
try:
raise alexerror('dasdkj')
except exception,e:
print e
不傳遞引數返回錯誤為alex error
異常處理之斷言
滿足條件則執行
assert 1==1
assert 1==2
python之異常處理 Python之異常處理
異常物件 請大家執行如下 a 100 0 print a 就會發現直譯器顯示如下的錯誤提示 traceback most recent call last file x.py line 1,in a 100 0 zerodivisionerror division by zero 大家要學會看直譯器...
Python之異常處理
在程式執行過程中影響程式正常執行的內容,稱為異常 nameerror print a indexerror 索引錯誤 li 1,2,3,4 print li 8 keyerror d dict a 1,b 2 print d f zerodivisionerror 除0錯誤 print 10 2 2...
Python之異常處理
try ret int input num 正常執行的 print ret except valueerror 捕捉錯誤 print 請輸入數字 try ret int input num 正常執行的 print ret except valueerror 捕捉錯誤 print 請輸入數字 exce...