哈哈哈哈哈操欧洲电影,久草网在线,亚洲久久熟女熟妇视频,麻豆精品色,久久福利在线视频,日韩中文字幕的,淫乱毛视频一区,亚洲成人一二三,中文人妻日韩精品电影

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python如何捕獲異常和主動(dòng)拋出異常

python爬蟲知識(shí)分享 ? 來源:python爬蟲知識(shí)分享 ? 作者:python爬蟲知識(shí)分享 ? 2022-03-04 17:09 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

python如何主動(dòng)拋出異常和捕獲異常

1. 如何拋出異常?

異常的產(chǎn)生有兩種來源:

一種是程序自動(dòng)拋出,比如 1/0 會(huì)自動(dòng)拋出 ZeroDivisionError

一種是開發(fā)者主動(dòng)拋出,使用 raise 關(guān)鍵字拋出。

在 Python 中是使用 raise 關(guān)鍵字來拋出異常的,比如在下面這個(gè)函數(shù)中,如果不存在目標(biāo)文件,則會(huì)拋出一個(gè) Exception 通用異常。

def demo_func(filename):
    if not os.path.isfile(filename):
        raise Exception

2. 如何捕獲異常?

出現(xiàn)錯(cuò)誤或者異常沒有關(guān)系,關(guān)鍵在于你要學(xué)會(huì)預(yù)判程序可能會(huì)出現(xiàn)的錯(cuò)誤或異常,然后在代碼中捕獲這些異常并處理。

異常的捕獲的語法有如下四種:

第一種語法

只捕捉但是不想獲取異常信息

try:
    代碼A
except [EXCEPTION]:
    代碼B

第二種語法

不但捕捉了還要獲取異常信息,賦值給 e 后,后面你可以把異常信息打印到日志中。

try:
    代碼A
except [EXCEPTION] as e:
    代碼B

第三種語法

使用 try ... except ... else

如果代碼A發(fā)生了異常,則會(huì)走到代碼B的邏輯,如果沒有發(fā)生異常,則會(huì)走到代碼C

try:
    代碼A
except [exception] as e:
    代碼B
else:
    代碼C

舉個(gè)例子

不發(fā)生異常的情況

>>> try:
...     4/2
... except ZeroDivisionError as e:
...     print("發(fā)生了異常:錯(cuò)誤信息如下: \n" + str(e))
... else:
...     print("程序正常運(yùn)行")
...
2
程序正常運(yùn)行

發(fā)生異常的情況

>>> try:
...     1/0
... except ZeroDivisionError as e:
...     print("發(fā)生了異常:錯(cuò)誤信息如下: \n" + str(e))
... else:
...     print("程序正常運(yùn)行")
...
發(fā)生了異常:錯(cuò)誤信息如下:
integer division or modulo by zero

第四種語法

使用 try ... except ... finally

如果代碼A發(fā)生了異常,則會(huì)走到代碼B的邏輯,最后不管有沒有發(fā)生異常都會(huì)走到代碼C

try: 代碼A except [exception] as e: 代碼B finally: 代碼C

舉個(gè)例子

發(fā)生異常的情況

>>> try:
...     1/0
... except ZeroDivisionError as e:
...     print("發(fā)生了異常:錯(cuò)誤信息如下: \n" + str(e))
... finally:
...     print("程序運(yùn)行結(jié)束!!")
...
發(fā)生了異常:錯(cuò)誤信息如下:
integer division or modulo by zero
程序運(yùn)行結(jié)束!!

不發(fā)生異常的情況

>>> try:
...     4/2
... except ZeroDivisionError as e:
...     print("發(fā)生了異常:錯(cuò)誤信息如下: \n" + str(e))
... finally:
...     print("程序運(yùn)行結(jié)束!!")
...
2
程序運(yùn)行結(jié)束!!

3. 捕獲多個(gè)異常?

每個(gè)except捕獲一個(gè)異常

一個(gè) try 語句可能有多個(gè) except 子句,以指定不同異常的處理程序,但是最多會(huì)執(zhí)行一個(gè)處理程序。

當(dāng)代碼 A 在運(yùn)行中拋出了異常時(shí),Python 解釋器會(huì)逐行運(yùn)行代碼,如果拋出的異常是 exception1 那么后面直接運(yùn)行代碼B,運(yùn)行完 B 后,就不會(huì)再判斷后面兩個(gè) except 語句了。

而如果不是 exception1 ,而是 exception2 ,那會(huì)運(yùn)行代碼C,而不會(huì)再運(yùn)行第三個(gè) except 語句了。

try:
    代碼A
except [exception1] as e:
    代碼B
except [exception2] as e:
    代碼C
except [exception3] as e:
    代碼D

舉個(gè)例子吧,下面這段代碼,由于 1/0 會(huì)拋出 ZeroDivisionError 錯(cuò)誤,所以前面兩個(gè)異常匹配都不成功,而在最后一個(gè) except 成功匹配上,最終打印出 除數(shù)不能為 0

try:
    1/0
except IOError:
    print("IO讀寫出錯(cuò)")
except FloatingPointError:
    # 浮點(diǎn)計(jì)算錯(cuò)誤
    print("計(jì)算錯(cuò)誤")
except ZeroDivisionError:
    # 除數(shù)不能為 0
    print("計(jì)算錯(cuò)誤")
# output: 計(jì)算錯(cuò)誤

一個(gè)except捕獲多個(gè)異常

上面的例子可以看出來,第二個(gè)異常和第三個(gè)異常是屬于同一類,就是 計(jì)算錯(cuò)誤,異常處理的代碼是一樣的,那有沒有辦法將它們合并在一起呢,簡化一下代碼呢?

答案是,可以的。

在 except 后面其實(shí)是可以接多個(gè)異常的,多個(gè)異常之間使用括號(hào)包裹。只要匹配上一個(gè)就算捕獲到,就會(huì)進(jìn)入相應(yīng)的代碼分支。

try:
    1/0
except IOError:
    print("IO讀寫出錯(cuò)")
except (ZeroDivisionError, FloatingPointError):
    print("計(jì)算出錯(cuò)")
# output: 計(jì)算錯(cuò)誤

審核編輯:符乾江
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • python
    +關(guān)注

    關(guān)注

    58

    文章

    4882

    瀏覽量

    90274
  • 異常
    +關(guān)注

    關(guān)注

    0

    文章

    23

    瀏覽量

    9524
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    監(jiān)控異常排查方案與監(jiān)控系統(tǒng)專利技術(shù)科普

    的數(shù)據(jù)采集與狀態(tài)監(jiān)測,提前識(shí)別系統(tǒng)運(yùn)行中的異常風(fēng)險(xiǎn),保障業(yè)務(wù)與設(shè)備的穩(wěn)定運(yùn)行。而異常排查,則是監(jiān)控系統(tǒng)從“被動(dòng)記錄”走向“主動(dòng)防控”的核心能力,直接決定了監(jiān)控體系的實(shí)
    的頭像 發(fā)表于 03-27 16:16 ?125次閱讀
    監(jiān)控<b class='flag-5'>異常</b>排查方案與監(jiān)控系統(tǒng)專利技術(shù)科普

    C++程序異常的處理機(jī)制

    語法 C++異常處理涉及到3個(gè)關(guān)鍵字: throw---拋出一個(gè)異常,帶參數(shù) try---用于標(biāo)識(shí)可能會(huì)出現(xiàn)異常的代碼段 catch--是用于標(biāo)識(shí)
    發(fā)表于 12-02 07:12

    線路保護(hù)光纖通道異常處理方法

    在電力系統(tǒng)中,線路保護(hù)光纖通道是保障電網(wǎng)安全穩(wěn)定運(yùn)行的核心環(huán)節(jié)。然而,受環(huán)境、設(shè)備老化或人為操作等因素影響,光纖通道異常時(shí)有發(fā)生,可能導(dǎo)致保護(hù)裝置誤動(dòng)或拒動(dòng),引發(fā)嚴(yán)重后果。本文將系統(tǒng)梳理線路保護(hù)光纖
    的頭像 發(fā)表于 11-17 10:01 ?1482次閱讀
    線路保護(hù)光纖通道<b class='flag-5'>異常</b>處理方法

    API接口調(diào)用中的網(wǎng)絡(luò)異常及解決方案

    一、連接類異常:“無法建立通信鏈路” 連接類異常的核心問題是 客戶端與API服務(wù)器之間無法成功建立TCP連接 ,導(dǎo)致調(diào)用請求“發(fā)不出去”,是網(wǎng)絡(luò)層最基礎(chǔ)的異常類型。 1. 常見場景與原因 目標(biāo)服務(wù)器
    的頭像 發(fā)表于 11-17 09:22 ?915次閱讀

    設(shè)備 “偷偷壞”?實(shí)時(shí)監(jiān)測系統(tǒng)讓異常 10 秒現(xiàn)形

    過去管設(shè)備靠 “老師傅聽聲”“定期保養(yǎng)”,本質(zhì)是被動(dòng)應(yīng)對(duì);現(xiàn)在實(shí)時(shí)監(jiān)測讓管理變主動(dòng) —— 異常冒頭就抓、手機(jī)遠(yuǎn)程管、故障精準(zhǔn)定位。
    的頭像 發(fā)表于 10-21 14:19 ?431次閱讀
    設(shè)備 “偷偷壞”?實(shí)時(shí)監(jiān)測系統(tǒng)讓<b class='flag-5'>異常</b> 10 秒現(xiàn)形

    拼多多:通過物流預(yù)警API提前識(shí)別異常訂單,主動(dòng)聯(lián)系用戶

    ? ?在電商平臺(tái)中,物流異常是影響用戶體驗(yàn)的關(guān)鍵因素之一。拼多多通過集成物流預(yù)警API,實(shí)現(xiàn)了對(duì)訂單狀態(tài)的實(shí)時(shí)監(jiān)控,能提前識(shí)別潛在問題(如包裹延遲、丟失或路由異常),并自動(dòng)觸發(fā)用戶聯(lián)系機(jī)制。這種技術(shù)
    的頭像 發(fā)表于 09-22 15:08 ?727次閱讀
    拼多多:通過物流預(yù)警API提前識(shí)別<b class='flag-5'>異常</b>訂單,<b class='flag-5'>主動(dòng)</b>聯(lián)系用戶

    如何利用AI算法進(jìn)行裝置數(shù)據(jù)的異常檢測?

    利用 AI 算法進(jìn)行裝置數(shù)據(jù)異常檢測,需結(jié)合工業(yè)裝置的數(shù)據(jù)特性(如實(shí)時(shí)性、多源性、強(qiáng)時(shí)序性、噪聲干擾)和業(yè)務(wù)需求(如故障預(yù)警、安全合規(guī)、工藝優(yōu)化),通過 “數(shù)據(jù)預(yù)處理 - 算法選型 - 模型部署
    的頭像 發(fā)表于 09-05 15:27 ?2184次閱讀
    如何利用AI算法進(jìn)行裝置數(shù)據(jù)的<b class='flag-5'>異常</b>檢測?

    IGBT 樣品異常檢測案例解析

    通過利用Thermal EMMI(熱紅外顯微鏡)去檢測IGBT 樣品異常
    的頭像 發(fā)表于 08-15 09:17 ?2106次閱讀
    IGBT 樣品<b class='flag-5'>異常</b>檢測案例解析

    如何捕獲PWM信號(hào)?

    我們現(xiàn)在有個(gè)需求,DSP在正常工作時(shí)會(huì)輸出1khz的PWM信號(hào),異常時(shí)PWM信號(hào)會(huì)停止。 芯片需要捕獲DSP輸出的PWM信號(hào),來檢測DSP的狀態(tài)。 如果DSP異常沒有輸出PWM信號(hào),芯片需要在這5S
    發(fā)表于 08-08 06:47

    判斷伺服行星減速機(jī)出現(xiàn)噪音的異常

    伺服行星減速機(jī)出現(xiàn)噪音通常被視為一種異常現(xiàn)象,這種噪音可能會(huì)影響設(shè)備的正常運(yùn)行,甚至對(duì)工作環(huán)境和操作人員的健康造成不良影響。以下是對(duì)伺服行星減速機(jī)出現(xiàn)噪音異常的判斷及可能原因的分析: 一、判斷標(biāo)準(zhǔn)
    的頭像 發(fā)表于 07-31 18:16 ?1135次閱讀
    判斷伺服行星減速機(jī)出現(xiàn)噪音的<b class='flag-5'>異常</b>

    harmony-utils之CrashUtil,異常相關(guān)工具類

    harmony-utils之CrashUtil,異常相關(guān)工具類
    的頭像 發(fā)表于 07-04 16:33 ?624次閱讀

    機(jī)器學(xué)習(xí)異常檢測實(shí)戰(zhàn):用Isolation Forest快速構(gòu)建無標(biāo)簽異常檢測系統(tǒng)

    本文轉(zhuǎn)自:DeepHubIMBA無監(jiān)督異常檢測作為機(jī)器學(xué)習(xí)領(lǐng)域的重要分支,專門用于在缺乏標(biāo)記數(shù)據(jù)的環(huán)境中識(shí)別異常事件。本文深入探討異常檢測技術(shù)的理論基礎(chǔ)與實(shí)踐應(yīng)用,通過IsolationForest
    的頭像 發(fā)表于 06-24 11:40 ?1577次閱讀
    機(jī)器學(xué)習(xí)<b class='flag-5'>異常</b>檢測實(shí)戰(zhàn):用Isolation Forest快速構(gòu)建無標(biāo)簽<b class='flag-5'>異常</b>檢測系統(tǒng)

    posix函數(shù)異常怎么解決?

    測試發(fā)現(xiàn)所有和絕對(duì)時(shí)間相關(guān)的函數(shù)都是異常的 這該怎么解決目前測試過的有 mq_timedreceive mq_timedsend sem_timedwait pthread_cond_timedwait pselect 全都是異常的 要不然就立即返回 要不然就一直阻塞永
    發(fā)表于 06-12 07:48

    PLC指示燈異常閃爍原因及維修

    PLC(可編程邏輯控制器)作為工業(yè)自動(dòng)化控制的核心設(shè)備,其運(yùn)行狀態(tài)的穩(wěn)定性直接影響生產(chǎn)線的效率與安全。指示燈作為PLC最直觀的狀態(tài)反饋窗口,其異常閃爍往往預(yù)示著潛在故障。本文將系統(tǒng)分析PLC指示燈
    的頭像 發(fā)表于 06-07 16:13 ?9882次閱讀
    PLC指示燈<b class='flag-5'>異常</b>閃爍原因及維修

    泰克示波器高級(jí)觸發(fā)功能捕獲異常信號(hào)的5種方法

    在電子工程領(lǐng)域,示波器是調(diào)試和分析信號(hào)的核心工具,而泰克示波器憑借其強(qiáng)大的高級(jí)觸發(fā)功能,能夠精準(zhǔn)捕獲異常信號(hào),幫助工程師快速定位問題。本文將詳細(xì)介紹五種利用泰克示波器高級(jí)觸發(fā)功能捕獲異常
    的頭像 發(fā)表于 05-29 09:38 ?1593次閱讀
    泰克示波器高級(jí)觸發(fā)功能<b class='flag-5'>捕獲</b><b class='flag-5'>異常</b>信號(hào)的5種方法
    沁水县| 宁河县| 苗栗市| 松阳县| 柏乡县| 永年县| 曲靖市| 开封县| 高平市| 轮台县| 永州市| 巴彦淖尔市| 西贡区| 青神县| 绥化市| 华池县| 仁化县| 通州区| 巨野县| 新营市| 德化县| 榆林市| 丹阳市| 五华县| 库尔勒市| 成武县| 威宁| 乐安县| 龙胜| 五常市| 简阳市| 宁晋县| 婺源县| 六枝特区| 宁化县| 隆林| 额济纳旗| 确山县| 个旧市| 家居| 梅河口市|