版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
異常處理—為查詢(xún)身份證歸屬地添加異常任務(wù)描述
在前面文件任務(wù)一中,用戶通過(guò)輸入身份證前6位數(shù)字可以查詢(xún)到身份證歸屬地,此任務(wù)實(shí)現(xiàn)了歸屬地查詢(xún)的功能,如果用戶訪問(wèn)的“身份證碼值對(duì)照表.txt”文件不在當(dāng)前路徑下,就會(huì)引發(fā)異常。
本任務(wù)要求通過(guò)添加異常處理功能,完善查詢(xún)身份歸屬地的程序。
現(xiàn)實(shí)生活并不是一帆風(fēng)順的,總會(huì)遇到各種突發(fā)情況,譬如,飛機(jī)延誤、火車(chē)晚點(diǎn)、上下班路上堵車(chē)等,這些情況都會(huì)導(dǎo)致上班遲到、會(huì)議錯(cuò)過(guò)、約會(huì)趕不上。同樣,程序在運(yùn)行過(guò)程中也會(huì)遇到各種各樣的問(wèn)題,最常見(jiàn)的問(wèn)題就是語(yǔ)法錯(cuò)誤。當(dāng)開(kāi)發(fā)人員編寫(xiě)了不符合Python語(yǔ)法格式的代碼時(shí)程序就會(huì)被中止運(yùn)行。除此之外還有邏輯錯(cuò)誤,即語(yǔ)法格式正確但在運(yùn)行時(shí)仍會(huì)發(fā)生錯(cuò)誤。無(wú)論是哪種錯(cuò)誤,都會(huì)導(dǎo)致程序無(wú)法正常運(yùn)行。當(dāng)程序被中止時(shí),屏幕上會(huì)顯示如下信息:錯(cuò)誤類(lèi)型錯(cuò)誤信息錯(cuò)誤位置01異常的定義及分類(lèi)02捕獲異常03任務(wù)實(shí)現(xiàn)異常定義及分類(lèi)01
異常的定義異常是指在程序運(yùn)行過(guò)程中檢測(cè)到的錯(cuò)誤。若異常不被處理,默認(rèn)情況下會(huì)導(dǎo)致程序崩潰而中止運(yùn)行。異常的分類(lèi)所有的異常類(lèi)都繼承自基類(lèi)BaseException。BaseException類(lèi)中包含4個(gè)子類(lèi),其中子類(lèi)Exception是大多數(shù)常見(jiàn)異常類(lèi)的父類(lèi)。異常的分類(lèi)Exception中常見(jiàn)的子類(lèi)及其描述見(jiàn)下表。捕獲異常02try-except語(yǔ)句try-except語(yǔ)句用于捕獲程序運(yùn)行過(guò)程中出現(xiàn)的異常,其格式如下:try:
可能出錯(cuò)的代碼......except[異常類(lèi)型]:
錯(cuò)誤處理語(yǔ)句......try:foriin3:print(i)exceptTypeError:print('循環(huán)應(yīng)改為:foriinrange(3):')譬如:try-except語(yǔ)句執(zhí)行過(guò)程如下:解釋器優(yōu)先執(zhí)行try子句中的代碼。若try子句未產(chǎn)生異常,則忽略except子句中的代碼。若try子句產(chǎn)生異常,則忽略try子句的剩余代碼,轉(zhuǎn)而執(zhí)行except子句中的代碼。捕獲單個(gè)異常捕獲程序運(yùn)行過(guò)程中的單個(gè)異常時(shí),需要指定具體的異常。try:foriin3:print(i)exceptTypeError
ase:print(f"異常原因:{e}")捕獲多個(gè)異常捕獲程序運(yùn)行過(guò)程中的多個(gè)異常時(shí),既可以將多個(gè)異常以元組形式放在except語(yǔ)句后面來(lái)處理,也可以聯(lián)合使用多個(gè)except語(yǔ)句。try:print(count)except(NameError,IndexError)aserror:print(f"異常原因:{error}")try:print(count)exceptNameErroraserror:print(f"異常原因:{error}")exceptIndexErroraserror:print(f"異常原因:{error}")捕獲所有異常捕獲程序運(yùn)行過(guò)程中的所有異常時(shí),既可以將所有異常的父類(lèi)Exception置于except后面來(lái)處理,也可以采用省略except后面的異常類(lèi)型的方式來(lái)處理。try:print(count)exceptExceptionaserror:print(f"異常原因:{error}")try:print(count)except:print("程序出現(xiàn)異常,原因未知")else子句else子句與try-except語(yǔ)句連用時(shí),其中的代碼會(huì)在try子句未出現(xiàn)異常時(shí)執(zhí)行。try:
可能出錯(cuò)的語(yǔ)句......except:
出錯(cuò)后的執(zhí)行語(yǔ)句else:
未出錯(cuò)時(shí)的執(zhí)行語(yǔ)句try:alp="ABCDEFGHIJKLMNOPQRSTUVWXYZ"n=eval(input("請(qǐng)輸入一個(gè)整數(shù):"))
print(alp[n])except(NameError,TypeError):print("輸入錯(cuò)誤,請(qǐng)輸入一個(gè)整數(shù)")else:print("沒(méi)有發(fā)生異常")譬如:finally子句finally子句與try-except語(yǔ)句連用時(shí),無(wú)論try-except是否捕獲到異常,finally子句中的代碼都要執(zhí)行。try:
可能出錯(cuò)的語(yǔ)句......except:
出錯(cuò)后的執(zhí)行語(yǔ)句finally:
無(wú)論是否出錯(cuò)都會(huì)執(zhí)行的語(yǔ)句try:alp="ABCDEFGHIJKLMNOPQRSTUVWXYZ"n=eval(input("請(qǐng)輸入一個(gè)整數(shù):"))
print(alp[n])except(NameError,TypeError):print("輸入錯(cuò)誤,請(qǐng)輸入一個(gè)整數(shù)")else:print("沒(méi)有發(fā)生異常")finally:print("程序執(zhí)行完畢")譬如:異常處理應(yīng)用編程檢測(cè)輸入是否為整數(shù),如果是整數(shù)顯示出來(lái),否則捕獲錯(cuò)誤并報(bào)錯(cuò)。defint_input(ch=''):try:ch=int(ch)print("%d"%ch)exceptValueError:print('出錯(cuò),您輸入的不是整數(shù)')if__name__=='__main__':x=input('請(qǐng)輸入一個(gè)整數(shù):')int_input(x)任務(wù)實(shí)現(xiàn)——為查詢(xún)身份證歸屬地添加異常03根據(jù)題意,由于“查詢(xún)身份證歸屬地”程序需要訪問(wèn)當(dāng)前路徑下的“身份證碼值對(duì)照表.txt”文件,若在讀取時(shí)沒(méi)有在當(dāng)前路徑下找到該文件,則會(huì)引發(fā)FileNotFoundError異常,所以本任務(wù)直接使用try...except語(yǔ)句捕獲并處理FileNotFoundError異常即可。
任務(wù)分析程序代碼根據(jù)異常處理方法,程序如下:importjsontry:f=open("身份證碼值對(duì)照表.txt",'r',encoding='utf-8')content=f.read()content_dict=json.loads(content)#轉(zhuǎn)換為字典類(lèi)型
address=input('請(qǐng)輸入身份證前6位:')forkey,valincontent_dict.items():ifkey==address:print(val)f.close()exceptFileNotFoundError:print("文件不存在")任務(wù)總結(jié)
異常是指在程序運(yùn)行過(guò)程中檢測(cè)到的錯(cuò)誤。所有的異常類(lèi)都繼承自基類(lèi)BaseException。BaseException類(lèi)中包含4個(gè)子類(lèi),其中子類(lèi)Exception是大多數(shù)常見(jiàn)異常類(lèi)的父類(lèi)。通常是通過(guò)try-exce
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)療器械生產(chǎn)自查制度
- 2026重慶墊江縣縣屬?lài)?guó)有企業(yè)招聘27人(第一次)備考考試試題附答案解析
- 車(chē)間生產(chǎn)質(zhì)檢員管理制度
- 食品生產(chǎn)企營(yíng)理制度
- 洗煤廠生產(chǎn)管理規(guī)章制度
- 2026年云南銀塔送變電設(shè)計(jì)公司項(xiàng)目制用工招聘(7人)參考考試試題附答案解析
- 安全生產(chǎn)履職雙報(bào)告制度
- 電石生產(chǎn)值班管理制度
- 生產(chǎn)保障班規(guī)章制度
- 流料機(jī)安全生產(chǎn)管理制度
- 2026上海碧海金沙投資發(fā)展有限公司社會(huì)招聘?jìng)淇碱}庫(kù)及答案1套
- 二十屆四中全會(huì)測(cè)試題及參考答案
- 公司電腦使用規(guī)范制度
- 2026重慶水利電力職業(yè)技術(shù)學(xué)院高層次人才招聘筆試參考題庫(kù)及答案解析
- 特種作業(yè)培訓(xùn)課件模板
- 陶瓷工藝品彩繪師崗后測(cè)試考核試卷含答案
- 廣西壯族自治區(qū)工業(yè)和信息化廳直屬部分科研事業(yè)單位2025年度公開(kāi)招聘工作人員備考題庫(kù)參考答案詳解
- 2026年及未來(lái)5年市場(chǎng)數(shù)據(jù)中國(guó)超細(xì)銅粉行業(yè)發(fā)展趨勢(shì)及投資前景預(yù)測(cè)報(bào)告
- 吞咽障礙患者誤吸的預(yù)防與管理方案
- 繼承農(nóng)村房屋協(xié)議書(shū)
- 2026年全年日歷表帶農(nóng)歷(A4可編輯可直接打?。╊A(yù)留備注位置
評(píng)論
0/150
提交評(píng)論