国产精品理论片_日韩激情视频一区_91免费版在线看_日韩专区在线_中文字幕国产一区_wwwjizz日本

您現(xiàn)在所在的位置:首頁 >學(xué)習(xí)資源 > Python全棧+人工智能入門教材 > Python基礎(chǔ)入門教程28:企業(yè)級開發(fā)基礎(chǔ) 異常處理

Python基礎(chǔ)入門教程28:企業(yè)級開發(fā)基礎(chǔ) 異常處理

來源:奇酷教育 發(fā)表于:

本節(jié)內(nèi)容如下:什么是異常,對異常的解釋和描述,口語描述和專業(yè)術(shù)語的聯(lián)系代碼中出現(xiàn)錯誤的處理手段異常處理方式什么樣的情況算異常捕獲異

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

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



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

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

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



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

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

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



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

4. 常見的異常



>>>更多VR/AR入門教程:VR入門
主站蜘蛛池模板: 国产高清视频一区 | 亚洲精品二三区 | 亚洲国产高清在线 | 一区视频 | 美女在线视频一区二区三区 | 亚洲女人天堂成人av在线 | 九九九久久国产免费 | 欧美一区二区三区在线视频 | 色999视频 | 亚洲成人日韩 | 精品久久久久一区二区国产 | av网站在线免费观看 | 在线亚洲欧美 | 91网站视频在线观看 | 天堂网中文| 国产精品毛片一区二区在线看 | 免费欧美 | 亚洲九色| 久久网站免费视频 | 亚洲人成人一区二区在线观看 | 精品国产一区二区三区性色av | 国产片淫级awww | 久久电影一区 | 99re在线视频 | 国产精品大片在线观看 | www国产精品 | 久久国产亚洲 | 日韩精品在线观看免费 | 天天搞天天操 | 久久99精品久久久久久 | 视频一区二区中文字幕日韩 | 可以免费观看的av片 | 欧洲精品久久久久毛片完整版 | 视频一区二区在线观看 | 午夜在线影院 | 992tv人人草| www.887色视频免费 | 欧美日批| 亚洲在线电影 | 亚洲国产午夜 | 91成人免费看 |