最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

從0開始的Python學習016異常

 更新時間:2019年04月08日 14:38:23   作者:Happy丶Liu  
這篇文章主要介紹了Python異常,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

簡介

當你的程序不能正常運行的時候,Python會在控制臺打印一段提醒,告訴你一個錯誤,這個錯誤就是異常。

錯誤

我在控制臺寫了一段無效的代碼,將print()的括號去掉,在執(zhí)行這條語句的時候,系統(tǒng)提示語法錯誤,無效的語句(我百度翻譯的)。這就是錯誤處理器所作的工作。

再換一種方式寫錯誤:

在程序獲取用戶輸入的時候,我們使用CTRL+d引發(fā)了一個EOFError錯誤,接下來我們嘗試去處理這樣的錯誤。

處理異常

使用try---except語句來處理異常。我們通常把容易產(chǎn)生異常的語句放置在try塊中,把做異常處理的語句放在except塊中。

import sys

try:
  a = input('Enter something:')
except(EOFError):
  print('\nWhy did you do an EOF on me ?')
  sys.exit()
except:
  print('\nSome error/exception occurred.')

print('Done')

運行結果

我們把所有可能引發(fā)錯誤的語句放在try塊中,然后在except從句/塊中處理所有的錯誤和異常。except從句可以專門處理單一的錯誤或異常,或者一組包括在圓括號內(nèi)的錯誤/異常。如果沒有給出錯誤或異常的名稱,它會處理 所有的 錯誤和異常。對于每個try從句,至少都有一個相關聯(lián)的except從句。

你還可以讓try..catch塊關聯(lián)上一個else從句。當沒有異常發(fā)生的時候,else從句將被執(zhí)行。

import sys

try:
  a = input('Enter something:')
except(EOFError):
  print('\nWhy did you do an EOF on me ?')
  sys.exit()
except:
  print('\nSome error/exception occurred.')
else:
  print('no error')

print('Done')

運行結果

raise引發(fā)異常

你可以使用raise語句拋出異常。你需要指明錯誤/異常的名稱和伴隨異常觸發(fā)的異常對象。這個異常應該是Error和Exception類的子類。這就用到了繼承的思想,使用__init__方法初始一些方法和參數(shù)。

class ShortInputException(Exception):
  def __init__(self,length,atleast):
    Exception.__init__(self)
    self.length = length
    self.atleast = atleast

try:
  s = input('Enter something-->')
  print(len(s))
  if len(s) < 3:
    raise ShortInputException(len(s),atleast = 3)
except(EOFError):
  print('\nWhy did you do an EOF on me ?')
except(ShortInputException) as x:
  print('ShortInputException: The in input was of length %d,\
      was expecting at least %d' % (x.length,x.atleast))
else:
  print('No exception was raised.')

運行結果

try...finally

假如在你讀文件的時候發(fā)生了異常,但是無論如何文件都要關閉。這個時候該怎么做呢?

這里我們需要使用finally塊來完成。

在使用try捕獲異常的時候,我們可以同時使用except塊和finally塊。

import time

try:
  f = open('poem.txt')
  while True: # our usual file-reading idiom
    line = f.readline()
    if len(line) == 0:
      break
    time.sleep(2)
    print(line)
finally:
  f.close()
  print('Cleaning up...closed the file')

運行結果

這里使用了time的sleep函數(shù),里面的參數(shù)是它的運行間隔。

這樣我們就有時間去使用CTRL+c使程序發(fā)生異常。這時候我們發(fā)現(xiàn)finally塊中的語句還是運行的,文件正常關閉了。

簡極(∞+∞=∞ ∞-∞=∞)

以上所述是小編給大家介紹的Python異常詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關文章

  • python smtplib發(fā)送帶附件郵件小程序

    python smtplib發(fā)送帶附件郵件小程序

    這篇文章主要為大家詳細介紹了python smtplib發(fā)送帶附件郵件小程序,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-05-05
  • Python實現(xiàn)圖數(shù)據(jù)處理的完整指南

    Python實現(xiàn)圖數(shù)據(jù)處理的完整指南

    圖是一種非常重要的數(shù)據(jù)結構,在Python中,我們可以使用鄰接矩陣來表示圖,這篇文章主要為大家介紹了Python實現(xiàn)圖數(shù)據(jù)處理的相關知識,需要的可以參考下
    2024-04-04
  • Python pip install如何修改默認下載路徑

    Python pip install如何修改默認下載路徑

    這篇文章主要介紹了Python pip install如何修改默認下載路徑,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Python入門篇之條件、循環(huán)

    Python入門篇之條件、循環(huán)

    本文的主要內(nèi)容是 Python 的條件和循環(huán)語句以及與它們相關的部分. 我們會深入探討if, while, for以及與他們相搭配的else,elif,break,continue和pass語句.
    2014-10-10
  • 最新評論

    日喀则市| 赞皇县| 龙口市| 南投市| 汉中市| 奎屯市| 周至县| 仙桃市| 安宁市| 滨海县| 德江县| 辽阳县| 仪陇县| 稷山县| 常德市| 道孚县| 大埔县| 如东县| 宁乡县| 宾川县| 镇雄县| 宁陕县| 抚松县| 长岛县| 巢湖市| 京山县| 抚州市| 台南市| 麻栗坡县| 遵义县| 门头沟区| 清水河县| 土默特左旗| 岳池县| 双辽市| 永靖县| 海安县| 延安市| 论坛| 抚远县| 正安县|