版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目10異常處理了解Python語(yǔ)言中異常的定義01了解Python常見內(nèi)置異常類02認(rèn)識(shí)Python異常信息的含義03知識(shí)目標(biāo)熟悉Python語(yǔ)言的異常處理語(yǔ)句04熟悉Python語(yǔ)言中主動(dòng)拋出異常的方法05熟悉Python語(yǔ)言自定義異常類的語(yǔ)法06能夠編寫語(yǔ)句引發(fā)特定異常01能夠熟練分析異常消息并找出異常原因和異常位置02能夠編寫帶有異常處理功能的程序03能力目標(biāo)能夠按條件主動(dòng)拋出異常04能夠按功能需求自定義異常05任務(wù)提出01任務(wù)分析02知識(shí)準(zhǔn)備03任務(wù)1密碼復(fù)雜度檢查任務(wù)實(shí)現(xiàn)04任務(wù)總結(jié)05任務(wù)1打印樹形圖案任務(wù)提出Part.01提出任務(wù)
在用戶注冊(cè)模塊中,對(duì)用戶輸入的密碼進(jìn)行復(fù)雜度檢查,如果密碼滿足復(fù)雜度要求,則允許用戶注冊(cè);否則視為發(fā)生異常情況,提示用戶密碼不符合復(fù)雜度要求,并要求用戶重新設(shè)置密碼。編寫Python程序,通過異常捕獲語(yǔ)句實(shí)現(xiàn)檢測(cè)密碼復(fù)雜度是否符合要求的功能,并處理該異常。任務(wù)分析Part.02任務(wù)分析1.創(chuàng)建Python程序文件pwdcheck.py。2.以一般性、常見性為標(biāo)準(zhǔn),明確一個(gè)密碼復(fù)雜度規(guī)則。3.設(shè)計(jì)算法,檢驗(yàn)密碼字符串是否滿足密碼復(fù)雜度規(guī)則。4.定義一個(gè)適當(dāng)?shù)漠惓n愋?,以便于在密碼不滿足復(fù)雜度規(guī)則時(shí),拋出異常。5.捕獲異常并處理異常情況。6.運(yùn)行測(cè)試程序,確認(rèn)異常情況是否被捕獲。本任務(wù)主要實(shí)現(xiàn)的是密碼復(fù)雜度的檢查,根據(jù)密碼復(fù)雜度的規(guī)則要求,對(duì)不符合要求的密碼,主動(dòng)拋出異常進(jìn)行專門處理,具體任務(wù)實(shí)施分析如下:知識(shí)準(zhǔn)備Part.03認(rèn)識(shí)異常01處理異常02異常的拋出和自定義異常類03知識(shí)準(zhǔn)備異常概述01常見異常類02異常類繼承關(guān)系0310.1認(rèn)識(shí)異常所謂異常是指Python程序執(zhí)行過程中出現(xiàn)無(wú)法正常處理程序的情況。引發(fā)異常有各種各樣的原因,例如程序語(yǔ)法錯(cuò)誤、計(jì)算錯(cuò)誤、命名錯(cuò)誤等,另外也有根據(jù)程序功能設(shè)計(jì)而主動(dòng)拋出的異常。異常概述在Python中定義了異常類,每當(dāng)發(fā)生異常時(shí),都會(huì)創(chuàng)建一個(gè)異常對(duì)象。如果這個(gè)異常對(duì)象沒有被處理和捕捉,程序就會(huì)終止執(zhí)行,并回溯(Traceback)顯示異常報(bào)告。異常概述回溯產(chǎn)生異常的代碼位置異常類型:“除零錯(cuò)”異常描述:“除數(shù)為零”
SyntaxError異常常見異常類NameError異常常見異常類
TypeError異常常見異常類KeyError異常常見異常類IndexError異常常見異常類ValueError異常常見異常類常見異常類異常類說明異常類說明BaseException所有異常的基類NameError未聲明/初始化對(duì)象(沒有屬性)SystemExit解釋器請(qǐng)求退出UnboundLocalError訪問未初始化的本地變量KeyboardInterrupt用戶中斷執(zhí)行ReferenceError引用錯(cuò)誤GeneratorExit生成器發(fā)生異常通知退出RuntimeError一般的運(yùn)行時(shí)錯(cuò)誤Exception常規(guī)異常的基類NotImplementedError尚未實(shí)現(xiàn)的方法StopIteration迭代器沒有更多的值SyntaxErrorPython語(yǔ)法錯(cuò)誤StandardError所有內(nèi)建標(biāo)準(zhǔn)異常基類IndentationError縮進(jìn)錯(cuò)誤ArithmeticError所有數(shù)值計(jì)算錯(cuò)誤基類TabErrorTab和空格混用FloatingPointError浮點(diǎn)計(jì)算錯(cuò)誤SystemError一般的解釋器系統(tǒng)錯(cuò)誤常見異常類異常類說明異常類說明OverflowError數(shù)值運(yùn)算超出最大限制TypeError對(duì)類型無(wú)效的操作ZeroDivisionError除(或取模)零ValueError傳入無(wú)效的參數(shù)AssertionError斷言語(yǔ)句失敗UnicodeErrorUnicode相關(guān)的錯(cuò)誤AttributeError對(duì)象沒有這個(gè)屬性UnicodeDecodeErrorUnicode解碼時(shí)的錯(cuò)誤EOFErrorEOF標(biāo)記錯(cuò)誤UnicodeEncodeErrorUnicode編碼時(shí)錯(cuò)誤EnvironmentError操作系統(tǒng)錯(cuò)誤的基類UnicodeTranslateErrorUnicode轉(zhuǎn)換時(shí)錯(cuò)誤IOError輸入/輸出操作失敗Warning警告的基類OSError操作系統(tǒng)錯(cuò)誤DeprecationWarning關(guān)于被棄用的特征的警告常見異常類異常類說明異常類說明OverflowWarning溢出警告FutureWarning將來(lái)語(yǔ)義會(huì)有改變的警告ImportError導(dǎo)入模塊/對(duì)象失敗WindowsError系統(tǒng)調(diào)用失敗LookupError無(wú)效數(shù)據(jù)查詢的基類PendingDeprecationWarning關(guān)于特性將會(huì)被廢棄的警告IndexError序列中沒有此索引(index)RuntimeWarning可疑的運(yùn)行時(shí)行為警告KeyError映射中沒有這個(gè)鍵SyntaxWarning可疑的語(yǔ)法警告MemoryError內(nèi)存溢出錯(cuò)誤UserWarning用戶代碼生成的警告Python定義了一個(gè)名為BaseException的基類,用于概括所有的異常種類,其子類包括SystemExit、KeyboardInterrupt、GeneratorExit和Exception。其中前三個(gè)是系統(tǒng)級(jí)異常,其它異常(如Python內(nèi)置常見異常、用戶自定義異常),都從Exception或其子類派生。異常類繼承關(guān)系try-except語(yǔ)句01else語(yǔ)句和finally語(yǔ)句0210.2處理異常在Python中,異常處理可以通過try-except語(yǔ)句來(lái)實(shí)現(xiàn)。當(dāng)你認(rèn)為程序可能發(fā)生錯(cuò)誤時(shí),可以使用try來(lái)嘗試運(yùn)行代碼,并通過except來(lái)告訴程序如果引發(fā)了異常該怎么辦。try-except語(yǔ)句try:語(yǔ)句塊0#可能引發(fā)異常的操作except[異常類型]:語(yǔ)句塊1#發(fā)生異常時(shí)執(zhí)行的操作try語(yǔ)句塊0except語(yǔ)句塊1try語(yǔ)句塊0過程中發(fā)生異常yesnotry-except語(yǔ)句無(wú)異常除零異常其他異常處理異常類型:“除零錯(cuò)”try-except語(yǔ)句無(wú)異常除零異常不區(qū)分異常類型數(shù)值異?!喾种xcept語(yǔ)句try-except語(yǔ)句try:
語(yǔ)句塊0#可能引發(fā)異常的操作except異常類型1:
語(yǔ)句塊1#發(fā)生異常1時(shí)執(zhí)行的處理動(dòng)作except異常類型2:
語(yǔ)句塊2#發(fā)生異常2時(shí)執(zhí)行的處理動(dòng)作……except:
語(yǔ)句塊n#其它未定義的異常處理動(dòng)作多分支except語(yǔ)句try-except語(yǔ)句try-except語(yǔ)句無(wú)異常除零異常分頭處理各類異常數(shù)值異常其他異?!赑ython的異常處理中,如果有語(yǔ)句依賴于try語(yǔ)句的成功執(zhí)行才能繼續(xù)執(zhí)行,那么放在else代碼塊中執(zhí)行。無(wú)論出現(xiàn)異常處理還是正常執(zhí)行都要執(zhí)行的清理語(yǔ)句放在finally代碼塊中執(zhí)行,通常是一些收尾的工作,如釋放對(duì)象等。else語(yǔ)句和finally語(yǔ)句try:語(yǔ)句塊0#可能引發(fā)異常的操作except:語(yǔ)句塊1#發(fā)生異常時(shí)執(zhí)行的操作else:語(yǔ)句塊2#依賴try語(yǔ)句塊執(zhí)行的操作finally:語(yǔ)句塊3#收尾操作except語(yǔ)句和finally語(yǔ)句try語(yǔ)句塊except語(yǔ)句塊else語(yǔ)句塊finally語(yǔ)句塊try語(yǔ)句塊是否發(fā)生異常yesnoexcept語(yǔ)句和finally語(yǔ)句有異常無(wú)異常raise主動(dòng)拋出異常01assert聲明斷言02自定義異常類0310.3異常的拋出和自定義異常類有時(shí)候底層程序捕獲到了異常,但暫時(shí)不想在當(dāng)前層次做出異常處理,此時(shí)也可以主動(dòng)拋出異常,讓其上層的調(diào)用者進(jìn)行處理。除了系統(tǒng)中內(nèi)置的一些異常之外,也可以根據(jù)業(yè)務(wù)需要拋出自定義的異常。raise主動(dòng)拋出異常raise[異常類型名('異常描述信息')]不帶異常類型的raise語(yǔ)句直接引發(fā)最近發(fā)生的異常。raise主動(dòng)拋出異常使用raise-from語(yǔ)句在一個(gè)異常中拋出另一個(gè)異常。raise主動(dòng)拋出異常raise異常類型2或別名2from異常類型1或別名1assert語(yǔ)句可以視為有條件的raise語(yǔ)句。使用assert聲明斷言,期望程序滿足指定條件,如果不滿足,則拋出AssertionError異常,并描述異常信息。主要作用是幫助調(diào)試程序。assert聲明斷言assert邏輯表達(dá)式,'描述信息'ifnot邏輯表達(dá)式:raiseAssertionError('描述信息')等價(jià)于assert聲明斷言雖然Python已經(jīng)內(nèi)置了幾十種不同的異常類,但用戶仍可以根據(jù)業(yè)務(wù)邏輯自定義新的異常類。自定義異常類BaseException異常的基類KeyboardInterrupt鍵盤中斷SystemExit解釋器退出Exception異常NameError變量未定義ValueError參數(shù)無(wú)效IndexError索引錯(cuò)誤自定義異?!远x異常類,通常遵循內(nèi)置異常類的命名習(xí)慣以“Error”結(jié)尾。根據(jù)需要,可以重寫構(gòu)造方法__init__和字符串方法__str__等。自定義異常類class異常類名(Exception):def__init__(self,msg):self.msg=msgdef__str__(self):returnself.msg任務(wù)實(shí)現(xiàn)Part.04分析代碼01編寫代碼02程序測(cè)試03任務(wù)實(shí)現(xiàn)分析代碼密碼規(guī)則
代碼思路長(zhǎng)度在8至20字符之間必須包括數(shù)字、大寫字母、小寫字母、特殊符號(hào)中的三種。自定義密碼格式錯(cuò)誤異常PwdError定義密碼字符集使用input()輸入測(cè)試密碼使用try-except語(yǔ)句檢驗(yàn)密碼是否符合密碼規(guī)則要求。如果符合,則提示“密碼強(qiáng)度高”;如果不符合,則拋出自定義異常PwdError,并提示“密碼格式錯(cuò)誤”1.自定義異常類編寫代碼2.定義密碼字符集:大寫字母、小寫字母、特殊符號(hào)、數(shù)字編寫代碼3.輸入密碼,分別統(tǒng)計(jì)密碼串中各類字符的數(shù)量編寫代碼4.嘗試判斷密碼是否超過三種且長(zhǎng)度在8-20之間,如果是,輸出“密碼強(qiáng)度高”;如果不是,則拋出PwdError異常。異常的處理方式是輸出該異常的文本。編寫代碼程序測(cè)試復(fù)雜密碼簡(jiǎn)單密碼任務(wù)總結(jié)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 培訓(xùn)機(jī)構(gòu)部分股權(quán)轉(zhuǎn)讓合同(2篇)
- 2024旅游用車租賃合同
- 2024淘寶店鋪全面運(yùn)營(yíng)管理及推廣合同范本3篇
- 2025年度殘疾人勞動(dòng)合同簽訂中的職業(yè)培訓(xùn)與技能提升合作3篇
- 2024新品電商合作進(jìn)場(chǎng)銷售協(xié)議書3篇
- 2024年股權(quán)激勵(lì)計(jì)劃合同(高科技企業(yè))
- 2024年環(huán)保產(chǎn)業(yè)項(xiàng)目轉(zhuǎn)讓與治理技術(shù)許可合同3篇
- 2024年盤扣式腳手架安裝服務(wù)合同版B版
- 2024年鋼筋批發(fā)協(xié)議模板一
- 三人團(tuán)隊(duì)貨車業(yè)務(wù)合作協(xié)議(2024年修訂版)版B版
- 沈陽(yáng)師范大學(xué)科研平臺(tái)和專業(yè)能力實(shí)踐基地建設(shè)規(guī)劃
- 大連市12處縣級(jí)以上飲用水水源保護(hù)區(qū)區(qū)劃方案
- 韓國(guó)文化與韓國(guó)語(yǔ)
- DLT 596-2021 電力設(shè)備預(yù)防性試驗(yàn)規(guī)程
- 蘇教版二年級(jí)科學(xué)下冊(cè)第3課《神奇的新材料》教學(xué)設(shè)計(jì)
- 二次供水工程施工方案
- 第二章離心風(fēng)機(jī).ppt
- 中國(guó)傳統(tǒng)圖案紋樣
- DLT5210.1-2021電力建設(shè)施工質(zhì)量驗(yàn)收及評(píng)價(jià)規(guī)程
- 民航企業(yè)會(huì)計(jì)核算辦法
- (完整版)人教版高中化學(xué)目錄(全部)
評(píng)論
0/150
提交評(píng)論