Python學(xué)習(xí)日志第八篇(1023)

異常處理

引發(fā)異常

在代碼的任何地方都可使用raise語(yǔ)句故意引發(fā)異常:

>>> raise IOError('This is a test!')
Traceback (most recent call last):
    File "<pyshell#6>", line 1, in <module> raise IOError('This is a test!')
IOError: This is a test!
捕獲異常

ex:

def get_age():
    while Ture:
        try: 
            n = int(input('How old are you? '))
            return n
        except ValueError:
            print('Please enter an integer value.')

處理多種異常:

def convert_to_int2(s, base):
    try:
        return int(s, base)
    except ValueError:
        return 'value error'
    except TypeError:
        return 'type error'

捕獲所有異常:

def convert_to_int3(s, base):
    try: 
        return int(s, base)
    except:
        return 'error'
with 語(yǔ)句

為了確保即便發(fā)生異常,也將盡早執(zhí)行清理操作。

num = 1
f = open(fname)
for line in f:
    print('%04d %s' % (num, line), end = ' ')
    num = num + 1

這里不知道文件對(duì)象f將在何時(shí)關(guān)閉。f通常在for循環(huán)結(jié)束后關(guān)閉,但不知道準(zhǔn)確的時(shí)間。
為確保不再需要的文件盡早關(guān)閉,可使用with語(yǔ)句:

num = 1
with open(fname, 'r') as f:
    for line in f:
        print('%04d %s' % (num, line), end = ' ')
        num = num + 1

使用with語(yǔ)句時(shí),將在for循環(huán)結(jié)束后立即執(zhí)行文件對(duì)象清理操作。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Lua 5.1 參考手冊(cè) by Roberto Ierusalimschy, Luiz Henrique de F...
    蘇黎九歌閱讀 14,257評(píng)論 0 38
  • 個(gè)人學(xué)習(xí)批處理的初衷來(lái)源于實(shí)際工作;在某個(gè)迭代版本有個(gè)BS(安卓手游模擬器)大需求,從而在測(cè)試過(guò)程中就重復(fù)涉及到...
    Luckykailiu閱讀 4,992評(píng)論 0 11
  • 【新聲記.讀狼】 生不易,不是嗎? 為財(cái)苦,為食忙,茍活于世,在塵埃里零落,在虛空里消亡…… 不...
    北岸之聲閱讀 275評(píng)論 0 0
  • 記住因能力不強(qiáng),被人忽視的屈辱感。同時(shí)理智的清楚,非一日之功。尊敬他,超越他。
    WillYang01閱讀 84評(píng)論 0 0
  • 立夏從楊亞飛家出來(lái),剛打算上車,卻見張艷艷的媽媽就站在大門的旁邊,正在往自己這邊看。 立夏趕緊過(guò)去打招呼,“嬸子,...
    冬妮婭閱讀 351評(píng)論 0 0

友情鏈接更多精彩內(nèi)容