奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌

您現在所在的位置:首頁 >學習資源 > Python全棧+人工智能入門教材 > Python基礎入門教程28:企業級開發基礎 異常處理

Python基礎入門教程28:企業級開發基礎 異常處理

來源:奇酷教育 發表于:

本節內容如下:什么是異常,對異常的解釋和描述,口語描述和專業術語的聯系代碼中出現錯誤的處理手段異常處理方式什么樣的情況算異常捕獲異

本節內容如下:
 
什么是異常,對異常的解釋和描述,口語描述和專業術語的聯系
代碼中出現錯誤的處理手段
異常處理方式
什么樣的情況算異常
捕獲異常【try-except-else-finally】
拋出異常【raise】
常見異常
1. 什么是異常
 
我們程序在開發過程中,總會遇到各種各樣的一些問題,有些是由于拼寫、配置、選項等等各種引起的程序錯誤,有些是由于程序功能處理邏輯不完善引起的漏洞,這些統稱為我們程序中的異常
 
所謂異常:就是不正常的情況,錯誤和漏洞都是不正常的情況,異常情況有時候也會稱呼為BUG,也就是缺陷、漏洞的意思,程序執行過程中出現異常會影響程序的正常執行。
 
python中內置了一整套完善的異常處理機制,可以讓開發人員快速針對出現問題的代碼進行完善和處理。
 
我們針對python可能遇到的不同的異常情況,一般會做如下處理:
 
如果是拼寫、配置等等引起的錯誤,根據出錯信息進行排查錯誤出現的位置進行解決
如果是程序設計不完善引起的漏洞,根據漏洞的情況進行設計處理漏洞的邏輯;
切記:合理的處理BUG也是程序設計開發的一部分
2. 錯誤處理
 
錯誤的出現,在程序中一般會有兩種表現,一種是拼寫錯誤,一種是程序執行過程中出現的錯誤,這樣兩種不同的錯誤應該怎么進行追蹤和處理呢?
 
2.1. 拼寫錯誤
 
常規情況下,拼寫錯誤只是在簡單的記事本等環境下進行開發時,容易手誤產生拼寫錯誤;當前開發環境下,我們經常使用一些半自動化的IDE開發工具,如pycharm等等,可以進行簡單的程序關鍵字的拼寫檢查以及程序結構的檢查,把一些簡單的拼寫問題掐死在萌芽之中
 
程序設計開發的學習需要經歷一個過程,建議開始的基礎部分使用超級記事本進行開發,如editplus、ultraedit、sublime等等,對于基礎的掌握會有一個非常不錯的提升作用;進入后續的企業級項目開發階段之后可以使用高級開發工具來提升我們的開發效率,如Pycharm、eclipse等等。
 
2.2. 程序運行時錯誤
 
程序運行過程中,也會出現各種各樣的錯誤,對于錯誤的出現和提示信息必須有一個比較明確的掌握,才能在后續的程序開發中快速的開發并且修復問題,這里就會出現兩個步驟
 
確定問題及問題出現的代碼行
后續的問題處理【參考后面的異常處理】
首先我們必須查詢問題出現的錯誤提示信息,觀察如下代碼

運行結果中出現了錯誤,錯誤的名稱是AttributeError,錯誤的提示是'Person' object has no attribute '_Person__names',簡單翻譯過來就是在Person對象中沒有屬性_Person__names
僅僅依靠這樣的錯誤提示,我們已經了解到,可能是我們對象的屬性操作過程中出現了什么錯誤,到底出現了什么錯誤呢?繼續觀察上面的錯誤代碼:
從錯誤的第一行代碼



3.1. 代碼中什么樣的情況是異常?
 
python提供了一套try-except-finally的異常處理代碼塊,用于針對可能出現問題的代碼進行容錯和處理
 
異常處理的語法結構如下:

上述功能的程序設計時,已經考慮了諸多的問題,如用戶輸入的數據應該是字符串,代碼中通過int()方法進行了強制類型轉換,在最后輸出數據的時候,由于num3是數值,數值和字符串不能直接用符號+連接,所以對num3又通過str()函數強制轉換成了字符串。正常情況下,程序沒有任何問題。
 
但是~上述程序的缺陷并非正常流程下,而是~如果用戶在應該輸入數字的情況下,輸入了字母或者其他的非數字字符,程序就出現錯誤了,這個才是我們要解決的程序的BUG

可以看到,上面通過添加try-except這樣的一個代碼塊,完美的解決了我們出現的錯誤,不至于讓錯誤導致程序的崩潰
 
3.2. 異常處理的方式1——捕獲異常
 
異常處理,python中是通過try-except語句代碼塊來執行處理的
 
try-except語句代碼塊處理異常通常有這樣幾種方式
 
使用try-except直接包含并處理所有異常



4.使用try-except-except-finally處理異常并在finally中進行后續處理

3.2. 異常處理的方式2——拋出異常
 
某些情況下,我們捕獲到異常信息,如果只是簡單的進行處理,對后續的程序可能會造成一定的困擾,舉一個簡單的操作案例:老板讓員工老李去采購一批辦公用品

請觀察我們之前寫過的如下代碼:



3.3. 異常處理的方式3——拋出自定義異常
 
如果系統提供的異常不一定符合我們的需要,如用戶登錄失敗,需要提示一個賬號密碼有誤的異常信息,python中是沒有提供這樣的異常對象的,需要開發人員自定義異常來進行處理
 
我們從前面的內容中已經知道,所有的異常對象都是直接或者間接繼承自BaseException
所以自定義異常如下:

4. 常見的異常



>>>更多VR/AR入門教程:VR入門
主站蜘蛛池模板: 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | 电位器_轻触开关_USB连接器_广东精密龙电子科技有限公司 | 体检车_移动CT车_CT检查车_CT车_深圳市艾克瑞电气有限公司移动CT体检车厂家-深圳市艾克瑞电气有限公司 | 聚丙烯酰胺_阴离子_阳离子「用量少」巩义亿腾厂家直销,售后无忧 聚合甘油__盐城市飞龙油脂有限公司 | 网站优化公司_北京网站优化_抖音短视频代运营_抖音关键词seo优化排名-通则达网络 | 开锐教育-学历提升-职称评定-职业资格培训-积分入户 | 防水接头-电缆防水接头-金属-电缆密封接头-不锈钢电缆接头 | 压力控制器,差压控制器,温度控制器,防爆压力控制器,防爆温度控制器,防爆差压控制器-常州天利智能控制股份有限公司 | 危废处理系统,水泥厂DCS集散控制系统,石灰窑设备自动化控制系统-淄博正展工控设备 | 骨密度仪-骨密度测定仪-超声骨密度仪-骨龄测定仪-天津开发区圣鸿医疗器械有限公司 | 青岛侦探_青岛侦探事务所_青岛劝退小三_青岛婚外情取证-青岛王军侦探事务所 | 报警器_家用防盗报警器_烟雾报警器_燃气报警器_防盗报警系统厂家-深圳市刻锐智能科技有限公司 | 针焰试验仪,灼热丝试验仪,漏电起痕试验仪,水平垂直燃烧试验仪 - 苏州亚诺天下仪器有限公司 | 活动策划,舞台搭建,活动策划公司-首选美湖上海活动策划公司 | 安全阀_弹簧式安全阀_美标安全阀_工业冷冻安全阀厂家-中国·阿司米阀门有限公司 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 招商帮-一站式网络营销服务|搜索营销推广|信息流推广|短视视频营销推广|互联网整合营销|网络推广代运营|招商帮企业招商好帮手 | 智慧农业|农业物联网|现代农业物联网-托普云农物联网官方网站 | 玉米深加工机械,玉米加工设备,玉米加工机械等玉米深加工设备制造商-河南成立粮油机械有限公司 | 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | 口臭的治疗方法,口臭怎么办,怎么除口臭,口臭的原因-口臭治疗网 | 连续油炸机,全自动油炸机,花生米油炸机-烟台茂源食品机械制造有限公司 | 电销卡 防封电销卡 不封号电销卡 电话销售卡 白名单电销卡 电销系统 外呼系统 | 天津云仓-天津仓储物流-天津云仓一件代发-顺东云仓 | 阁楼货架_阁楼平台_仓库仓储设备_重型货架_广州金铁牛货架厂 | 便携式XPDM露点仪-在线式防爆露点仪-增强型烟气分析仪-约克仪器 冰雕-冰雪世界-大型冰雕展制作公司-赛北冰雕官网 | 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 氧化锆纤维_1800度高温退火炉_1800度高温烧结炉-南京理工宇龙新材料股份有限公司 | 对辊破碎机_四辊破碎机_双齿辊破碎机_华盛铭重工| 蔬菜清洗机_环速洗菜机_异物去除清洗机_蔬菜清洗机_商用洗菜机 - 环速科技有限公司 | 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 广州印刷厂_广州彩印厂-广州艺彩印务有限公司 | 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 打包箱房_集成房屋-山东佳一集成房屋有限公司 | 纯化水设备-纯水设备-超纯水设备-[大鹏水处理]纯水设备一站式服务商-东莞市大鹏水处理科技有限公司 | 反渗透阻垢剂-缓蚀阻垢剂厂家-循环水处理药剂-山东鲁东环保科技有限公司 | 牛奶检测仪-乳成分分析仪-北京海谊 | 厚壁钢管-厚壁无缝钢管-小口径厚壁钢管-大口径厚壁钢管 - 聊城宽达钢管有限公司 | CNC机加工-数控加工-精密零件加工-ISO认证厂家-鑫创盟 | 沈飞防静电地板__机房地板-深圳市沈飞防静电设备有限公司 |