第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會有你想問的

如何正確忽略異常

如何正確忽略異常

慕工程0101907 2019-06-23 15:51:51
如何正確忽略異常當(dāng)您只想嘗試-除了不處理異常的情況下,如何在Python中完成呢?以下是正確的方法嗎?try:     shutil.rmtree(path) except:     pass
查看完整描述

3 回答

?
慕神8447489

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊

通常認(rèn)為最好的做法是只捕捉你感興趣的錯(cuò)誤。如屬shutil.rmtree可能是OSError:

>>> shutil.rmtree("/fake/dir")
Traceback (most recent call last):
    [...]
OSError: [Errno 2] No such file or directory: '/fake/dir'

如果您想要默默地忽略該錯(cuò)誤,請執(zhí)行以下操作:

try:
    shutil.rmtree(path)
except OSError:
    pass

為什么?假設(shè)您(不知怎么地)不小心將函數(shù)傳遞為整數(shù)而不是字符串,如下所示:

shutil.rmtree(2)

它會造成錯(cuò)誤TypeError:脅迫Unicode:需要字符串或緩沖區(qū),int找到-您可能不想忽略這一點(diǎn),這可能很難調(diào)試。

如果你一定要忽略所有錯(cuò)誤,捕獲Exception而不是光禿禿的except:聲明。再說一遍,為什么?

不指定異常捕獲每一,每個(gè)異常,包括SystemExit異常,例如sys.exit()用途:

>>> try:
...     sys.exit(1)
... except:
...     pass
... 
>>>

將其與正確退出的以下內(nèi)容進(jìn)行比較:

>>> try:
...     sys.exit(1)
... except Exception:
...     pass
... 
shell:~$

如果您想編寫更好的行為良好的代碼,OSError異??梢员硎靖鞣N錯(cuò)誤,但在上面的示例中,我們只想忽略Errno 2因此,我們可以更加具體地:

try:
    shutil.rmtree(path)
except OSError, e:
    if e.errno == 2:
        # suppress "No such file or directory" error
        pass
    else:
        # reraise the exception, as it's an unexpected error
        raise

你也可以import errno并更改ifif e.errno == errno.ENOENT:


查看完整回答
反對 回復(fù) 2019-06-23
?
HUH函數(shù)

TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超4個(gè)贊

當(dāng)您只想在不處理異常的情況下執(zhí)行TRY CATCH時(shí),如何在Python中執(zhí)行呢?

這取決于你所說的“處理”是什么意思。

如果你想在不采取任何行動的情況下抓住它,那么你發(fā)布的代碼就會起作用。

如果您的意思是要在不阻止異常上升的情況下對異常采取行動,那么您需要如下所示:

try:
    do_something()
except:
    handle_exception()
    raise  #re-raise the exact same exception that was thrown


查看完整回答
反對 回復(fù) 2019-06-23
  • 3 回答
  • 0 關(guān)注
  • 877 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號