欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python try except返回異常的信息字符串代碼實例

 更新時間:2019年08月15日 17:08:59   作者:貧民窟里的程序高手  
這篇文章主要介紹了python try except返回異常的信息字符串代碼實例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下

問題

https://docs.python.org/3/tutorial/errors.html#handling-exceptions

https://docs.python.org/3/library/exceptions.html#ValueError

try:
  int("x")
except Exception as e:
  '''異常的父類,可以捕獲所有的異常'''
  print(e)
# e變量是Exception類型的實例,支持__str__()方法,可以直接打印。 
invalid literal for int() with base 10: 'x'
try:
  int("x")
except Exception as e:
  '''異常的父類,可以捕獲所有的異常'''
  print(e.args)
# e變量有個屬性是.args,它是錯誤信息的元組
("invalid literal for int() with base 10: 'x'",)try: datetime(2017,2,30)except ValueError as e: print(e) day is out of range for monthtry: datetime(22017,2,30)except ValueError as e: print(e) year 22017 is out of rangetry: datetime(2017,22,30)except ValueError as e: print(e) month must be in 1..12e = Nonetry: datetime(2017,22,30)except ValueError as e: print(e) month must be in 1..12e
# e這個變量在異常過程結(jié)束后即被釋放,再調(diào)用也無效
 Traceback (most recent call last): File "<input>", line 1, in <module>NameError: name 'e' is not defined
errarg = None
try:
  datetime(2017,22,30)
except ValueError as errarg:
  print(errarg)
  
month must be in 1..12
errarg
Traceback (most recent call last):
 File "<input>", line 1, in <module>
NameError: name 'errarg' is not defined
try:
  datetime(2017,22,30)
except ValueError as errarg:
  print(errarg.args)

# ValueError.args 返回元組

('month must be in 1..12',)
message = None
try:
  datetime(2017,22,30)
except ValueError as errarg:
  print(errarg.args)
  message = errarg.args
  
('month must be in 1..12',)
message
('month must be in 1..12',)
try:
  datetime(2017,22,30)
except ValueError as errarg:
  print(errarg.args)
  message = errarg
  
('month must be in 1..12',)
message
ValueError('month must be in 1..12',)
str(message)
'month must be in 1..12'

分析異常信息,并根據(jù)異常信息的提示做出相應(yīng)處理:

try:
  y = 2017
  m = 22
  d = 30
  datetime(y,m,d)
except ValueError as errarg:
  print(errarg.args)
  message = errarg
  m = re.search(u"month", str(message))
  if m:
    dt = datetime(y,1,d)
    
('month must be in 1..12',)
dt
datetime.datetime(2017, 1, 30, 0, 0)

甚至可以再except中進(jìn)行遞歸調(diào)用:

def validatedate(y, mo, d):
  dt = None
  try:
    dt = datetime(y, mo, d)
  except ValueError as e:
    print(e.args)
    print(str(y)+str(mo)+str(d))
    message = e
    ma = re.search(u"^(year)|(month)|(day)", str(message))
    ymd = ma.groups()
    if ymd[0]:
      dt = validatedate(datetime.now().year, mo, d)
    if ymd[1]:
      dt = validatedate(y, datetime.now().month, d)
    if ymd[2]:
      dt = validatedate(y, mo, datetime.now().day)
  finally:
    return dt 
validatedate(20199, 16, 33)
('year 20199 is out of range',)
('month must be in 1..12',)
('day is out of range for month',)
datetime.datetime(2018, 4, 20, 0, 0)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中對列表的刪除和添加方法詳解

    python中對列表的刪除和添加方法詳解

    這篇文章主要為大家詳細(xì)介紹了python中對列表的刪除和添加方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-02-02
  • Python+Redis實現(xiàn)布隆過濾器

    Python+Redis實現(xiàn)布隆過濾器

    布隆過濾器(Bloom Filter)是1970年由布隆提出的。它實際上是一個很長的二進(jìn)制向量和一系列隨機(jī)映射函數(shù)。這篇文章主要介紹了Python+Redis實現(xiàn)布隆過濾器,需要的朋友可以參考下
    2019-12-12
  • 如何使用Python自動控制windows桌面

    如何使用Python自動控制windows桌面

    這篇文章主要介紹了如何使用Python自動控制windows桌面,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-07-07
  • Python實現(xiàn)用戶名和密碼登錄

    Python實現(xiàn)用戶名和密碼登錄

    這篇文章主要為大家詳細(xì)介紹了Python實現(xiàn)用戶名和密碼登錄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • Python GUI編程學(xué)習(xí)筆記之tkinter事件綁定操作詳解

    Python GUI編程學(xué)習(xí)筆記之tkinter事件綁定操作詳解

    這篇文章主要介紹了Python GUI編程學(xué)習(xí)筆記之tkinter事件綁定操作,結(jié)合實例形式分析了Python GUI編程tkinter事件綁定常見操作技巧與使用注意事項,需要的朋友可以參考下
    2020-03-03
  • 手殘刪除python之后的補(bǔ)救方法

    手殘刪除python之后的補(bǔ)救方法

    這篇文章主要介紹了手殘刪除python之后的補(bǔ)救方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • 一篇文章帶你搞懂Python類的相關(guān)知識

    一篇文章帶你搞懂Python類的相關(guān)知識

    今天我們要說的是面向?qū)ο蟮暮诵?----類,類能幫我們把復(fù)雜的事情變得有條理,有順序,希望大家通過學(xué)習(xí)類能改善自己的編碼風(fēng)格,使代碼變得更為好看,更加通俗易懂,需要的朋友可以參考下
    2021-05-05
  • python爬蟲selenium和phantomJs使用方法解析

    python爬蟲selenium和phantomJs使用方法解析

    這篇文章主要介紹了python爬蟲selenium和phantomJs使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-08-08
  • Python第三方庫Click快速使用詳解

    Python第三方庫Click快速使用詳解

    這篇文章主要介紹了Python第三方庫Click的相關(guān)資料,本文通過實例代碼給大家介紹的非常詳細(xì),感興趣的朋友一起看看吧
    2024-12-12
  • Python的3種運(yùn)行方式:命令行窗口、Python解釋器、IDLE的實現(xiàn)

    Python的3種運(yùn)行方式:命令行窗口、Python解釋器、IDLE的實現(xiàn)

    這篇文章主要介紹了Python的3種運(yùn)行方式:命令行窗口、Python解釋器、IDLE的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10

最新評論