亚洲精品中文免费|亚洲日韩中文字幕制服|久久精品亚洲免费|一本之道久久免费

      
      

            <dl id="hur0q"><div id="hur0q"></div></dl>

                Python 中使用try來處理異常的方法

                Python 中使用try來處理異常的方法

                六二,直方大,不習(xí)無不利。

                在學(xué)習(xí)python中會經(jīng)常遇到各種異常事件;現(xiàn)歸納一下如何捕捉并處理這些異常;今天來給大家整理一下。

                一、異常的概念

                什么是異常?

                異常即是一個(gè)事件,該事件會在程序執(zhí)行過程中發(fā)生,影響了程序的正常執(zhí)行。一般情況下,在Python無法正常處理程序時(shí)就會發(fā)生一個(gè)異常。異常是Python對象,表示一個(gè)錯(cuò)誤。當(dāng)Python腳本發(fā)生異常時(shí)我們需要捕獲處理它,否則程序會終止執(zhí)行。

                三、出現(xiàn)異常的捕捉方法

                異常處理

                捕捉異常可以使用try/except語句。try/except語句用來檢測try語句塊中的錯(cuò)誤,從而讓except語句捕獲異常信息并處理。如果你不想在異常發(fā)生時(shí)結(jié)束你的程序,只需在try里捕獲它。

                語法:

                以下為簡單的try….except…else的語法:

                try的工作原理是,當(dāng)開始一個(gè)try語句后,python就在當(dāng)前程序的上下文中作標(biāo)記,這樣當(dāng)異常出現(xiàn)時(shí)就可以回到這里,try子句先執(zhí)行,接下來會發(fā)生什么依賴于執(zhí)行時(shí)是否出現(xiàn)異常。

                • 如果當(dāng)try后的語句執(zhí)行時(shí)發(fā)生異常,python就跳回到try并執(zhí)行第一個(gè)匹配該異常的except子句,異常處理完畢,控制流就通過整個(gè)try語句(除非在處理異常時(shí)又引發(fā)新的異常)。
                • 如果在try后的語句里發(fā)生了異常,卻沒有匹配的except子句,異常將被遞交到上層的try,或者到程序的最上層(這樣將結(jié)束程序,并打印默認(rèn)的出錯(cuò)信息)。
                • 如果在try子句執(zhí)行時(shí)沒有發(fā)生異常,python將執(zhí)行else語句后的語句(如果有else的話),然后控制流通過整個(gè)try語句。

                實(shí)例

                try 塊將生成異常,因?yàn)?x 未定義

                try: print(x)except: print(“An exception occurred”)

                由于 try 塊引發(fā)錯(cuò)誤,因此會執(zhí)行 except 塊(如上圖所示)。

                如果沒有 try 塊,程序?qū)⒈罎⒉⒁l(fā)錯(cuò)誤(如下圖所示)

                多個(gè)異常

                您可以根據(jù)需要定義任意數(shù)量的 exception 塊

                實(shí)例

                如果 try 塊引發(fā) NameError,則打印一條消息,如果是其他錯(cuò)誤則打印另一條消息:

                try: print(x)except NameError: print(“Variable x is not defined”)except: print(“Something else went wrong”)

                Else

                如果沒有引發(fā)錯(cuò)誤,那么您可以使用 else 關(guān)鍵字來定義要執(zhí)行的代碼塊:

                實(shí)例

                在本例中,try 塊不會生成任何錯(cuò)誤:

                try: print(“Hello”)except: print(“Something went wrong”)else: print(“Nothing went wrong”)

                Finally

                如果指定了 finally 塊,則無論 try 塊是否引發(fā)錯(cuò)誤,都會執(zhí)行 finally 塊。

                實(shí)例

                try: print(x)except: print(“Something went wrong”)finally: print(“The ‘try except’ is finished”)

                以上是使用try方法捕捉處理異常的方法。

                PS:我們也可以人為的自動(dòng)觸發(fā)異常

                觸發(fā)異常我們可以使用raise語句自己觸發(fā)異常raise語法格式如下:

                raise Exception (args ,traceback)

                語句中 Exception 是異常的類型(例如,NameError)參數(shù)標(biāo)準(zhǔn)異常中任一種,args 是自已提供的異常參數(shù)。最后一個(gè)參數(shù)是可選的(在實(shí)踐中很少使用),如果存在,是跟蹤異常對象。實(shí)例一個(gè)異??梢允且粋€(gè)字符串,類或?qū)ο蟆?Python的內(nèi)核提供的異常,大多數(shù)都是實(shí)例化的類,這是一個(gè)類的實(shí)例的參數(shù)。定義一個(gè)異常非常簡單,如下所示:

                def functionName( level ): if level < 1: raise Exception("Invalid level!", level)# 觸發(fā)異常后,后面的代碼就不會再執(zhí)行

                注意:為了能夠捕獲異常,”except”語句必須有用相同的異常來拋出類對象或者字符串。例如我們捕獲以上異常,”except”語句如下所示:

                try: 正常邏輯except Exception(err): 觸發(fā)自定義異常else: 其余代碼# 定義函數(shù)def mye( level ): if level < 1: raise Exception("Invalid level!")try: mye(0)except Exception as err: print (1,err)else: print (2)

                鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場,版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系管理員(admin#wlmqw.com)刪除。
                用戶投稿
                上一篇 2022年8月7日 12:19
                下一篇 2022年8月7日 12:20

                相關(guān)推薦

                • 分享4條發(fā)微商朋友圈的方法(微商朋友圈應(yīng)該怎么發(fā))

                  對于微商朋友來說,朋友圈的重要性不言而喻了。 那么微商的朋友圈到底該怎么發(fā)呢? 為什么同樣是經(jīng)營一個(gè)朋友圈,有的微商看起來逼格滿滿,實(shí)際效果也不錯(cuò);而有的卻動(dòng)都不動(dòng)就被屏蔽甚至拉黑…

                  2022年11月27日
                • 存儲過程語法(sql server存儲過程語法)

                  今天小編給各位分享存儲過程語法的知識,其中也會對sql server存儲過程語法進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! oracle存儲過程基本語法…

                  2022年11月26日
                • 《寶可夢朱紫》夢特性怎么獲得?隱藏特性獲取方法推薦

                  寶可夢朱紫里有很多寶可夢都是擁有夢特性會變強(qiáng)的寶可夢,很多玩家不知道夢特性怎么獲得,下面就給大家?guī)韺毧蓧糁熳想[藏特性獲取方法推薦,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 …

                  2022年11月25日
                • 《寶可夢朱紫》奇魯莉安怎么進(jìn)化?奇魯莉安進(jìn)化方法分享

                  寶可夢朱紫中的奇魯莉安要怎么進(jìn)化呢?很多玩家都不知道,下面就給大家?guī)韺毧蓧糁熳掀骠斃虬策M(jìn)化方法分享,感興趣的小伙伴一起來看看吧,希望能幫助到大家。 奇魯莉安進(jìn)化方法分享 奇魯莉安…

                  2022年11月25日
                • 銳龍97900x參數(shù)規(guī)格跑分評測 銳龍97900x屬于什么檔次

                  銳龍9 7900X是銳龍7000系列處理器中性能頂尖的型號之一,它采用了這一代標(biāo)配的zen4架構(gòu)和5nm制程工藝,那么它具體的參數(shù)跑分如何,在電腦上世紀(jì)發(fā)揮怎么樣呢,下面就來看看銳…

                  2022年11月24日
                • 今天出入濟(jì)南最新通知(出入濟(jì)南政策最新消息今天)

                  近日濟(jì)南疫情感染人數(shù)也在不斷增加,劃分的高風(fēng)險(xiǎn)區(qū)也是越來越多了。據(jù)最新統(tǒng)計(jì),截止2022年11月24日11時(shí),濟(jì)南共有低風(fēng)險(xiǎn)地區(qū)12處,高風(fēng)險(xiǎn)地區(qū)338處。很多朋友都擔(dān)心現(xiàn)在濟(jì)南無…

                  2022年11月24日
                • 新版找不到切換農(nóng)村淘寶(現(xiàn)在怎么找不到農(nóng)村淘寶了)

                  2017年農(nóng)村淘寶APP升級為手機(jī)淘寶家鄉(xiāng)版,于是手機(jī)淘寶就分為兩個(gè)版本,一個(gè)家鄉(xiāng)版和標(biāo)準(zhǔn)版。今年五一假期一過淘寶又發(fā)出新公告將陸續(xù)升級! 左邊為標(biāo)準(zhǔn)版,右邊為家鄉(xiāng)版 據(jù)公告,升級…

                  2022年11月24日
                • 1千克等于多少磅

                  克,此定義在1958年被美國以及其他英聯(lián)邦會員國承認(rèn)換算回來,一千克等于262磅,一磅等于037千克英國在1963年開始,依據(jù)度量衡法案的規(guī);1 磅=16 盎司=04536 千克 …

                  2022年11月24日
                • 《寶可夢朱紫》暴飛龍?jiān)趺醋??暴飛龍獲得方法

                  寶可夢朱紫暴飛龍位置在哪?在游戲中,很多玩家還不清楚暴飛龍具體要怎么樣獲得,其實(shí)獲得方法很簡單,暴飛龍直接是沒得抓的,需要玩家從寶貝龍進(jìn)化得到,下面一起來看一下寶可夢朱紫暴飛龍獲得…

                  2022年11月23日
                • 《寶可夢朱紫》布土撥怎么進(jìn)化?布土撥進(jìn)化方法介紹

                  寶可夢朱紫中,不同的寶可夢有不同的進(jìn)化方法,其中布土撥的進(jìn)化方法是比較特殊的。很多玩家不知道寶可夢朱紫布土撥怎么進(jìn)化,下面就帶來寶可夢朱紫布土撥進(jìn)化方法介紹,一起來看看吧,希望能幫…

                  2022年11月23日

                聯(lián)系我們

                聯(lián)系郵箱:admin#wlmqw.com
                工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息