最新消息:XAMPP默认安装之后是很不安全的,我们只需要点击左方菜单的 "安全"选项,按照向导操作即可完成安全设置。

Day12-程式錯誤和例外處理

XAMPP下载 admin 837浏览 0评论

在要開始進入函式跟一些深入的程式介紹時,我想先談談程式錯誤的部分。畢竟未來在撰寫大量程式碼時,一定有機會發生錯誤,然後還搞不懂問題出在哪,所以才有了”例外處理”來幫助我們。那麼越想要程式正常執行就要越清楚問題點在哪,以下就開始一一介紹吧~

程式錯誤類型
程式的錯誤可以分成三種:

1.語法錯誤
顧名思義,這種錯誤就是程式碼不符合程式語言的語法。例如指令單字拼錯、大小寫不對,或是格式不對,都是屬於語法錯誤。其實這種錯誤最容易發現,一般在初步偵錯工具時就會出現紅紅的讓你改正,所以不必大費周章花時間在處理這方面的錯誤。

2.邏輯錯誤
如果程式可以執行,語法上看起來也沒問題,但獲得的結果卻是錯誤的,就是發生邏輯錯誤。例如寫錯變數名稱、將值錯誤地指定到別的地方,或是百分比輸出沒乘上100等。講直白點就是自己邏輯上想錯了,還是哪裡忘記加東西,通常細心一點慢慢觀察就行。

3.執行錯誤
當程式執行到一半時,被強制結束,無法執行完畢,就是發生執行錯誤。例如除數為0、使用者非法輸入、要開啟的檔案已不存在等。這種錯誤,在Python中會歸類在「例外」(Exceptions),而等等要講的例外處理也就是針對這種錯誤。

例外處理
執行錯誤通常不太容易被發現,而且通常在沒有其他語法錯誤的情況下發生的,所以才需要例外處裡來輔助設計者。例外處理是一種特殊的語法格式,由try和except這兩個主要指令組成,再加上兩個選擇性的else和finally指令。以下是它的完整語法,通常只要有主要指令就行了,還請搭配流程圖一起看:

try:
#想要的程式碼

except(例外錯誤類型1, 例外錯誤類型2,…) as 例外物件:
#發生例外錯誤類型1、2時,要執行的程式碼

#還可以在繼續增加except指令

else:
#try指令的程式順利執行完畢,沒發生錯誤時執行

finally:
#不管有沒有發生錯誤,最後都會執行

例外處理流程圖:
QQ截图20181030162501

那麼除了瞭解它的語法格式之外,還要知道各種「例外錯誤類型」的使用時機。下面先放上書中整理的圖:
QQ截图20181030162455
這裡也就不一一說明其功用了,因為這些通常是有需要才會去用,平時根本記不起所有例外類型當然你大可以用Exception類型去抓所有非系統運作的錯誤,不過這樣就會成為很懶惰的程式人員。程式就是要盡量明確地指定要處理哪一種例外錯誤,如此才能幫助自己學習,讓整個程式執行下來會比較完整。以下就來舉個我們常用的例子吧:

while True:
try:
age = int(input(‘請輸入年齡:’))
if age<=0:
print(‘有誰年齡是負的!好好打!’)
continue
except ValueError:                     #抓非整數的時候
print(‘打個數字有很難嗎??’)
except KeyboardInterrupt:              #抓按下Crtl+C的時候
print(‘為什麼你要按複製?懶?’)
else:
if age<30:
print(‘你的年齡是%d歲,很年輕喔~’%(age))
elif 30<=age<=90:
print(‘你的年齡是%d歲,要把握生命每一刻喔~’%(age))
else:
print(‘你的年齡是%d歲,很長壽喔~要繼續加油!’%(age))
break
執行結果

請輸入年齡:hello
打個數字有很難嗎??

請輸入年齡:好兇QQ
打個數字有很難嗎??

請輸入年齡:-123
有誰年齡是負的!好好打!

請輸入年齡:
為什麼你要按複製?懶?

請輸入年齡:20
你的年齡是20歲,很年輕喔~

转载请注明:XAMPP中文组官网 » Day12-程式錯誤和例外處理

您必须 登录 才能发表评论!