如何學Python 第九課-try&except-錯誤與異常 ---轉載---玄魂工作室

前言:

在調試程序過程中,總會遇到這樣或者那樣的錯誤。今天我們就來學習一下如何定位和解決這些問題。

人非聖賢,孰能無過?寫程序的時候難免會遇到一些問題。本篇文章會介紹一些常見的錯誤,並且解釋一下其中的道理。

出錯並不是壞事

錯誤的出現原因多種多樣。用戶的非法輸入、進程創建失敗等等都可以導致錯誤的出現。除了語法錯誤這種低級錯誤以外,有時候了,發現邏輯/使用上的缺陷不僅可以防患於未然,甚至可以讓我們把程序做得更好。

看懂錯誤信息

如果程序出了錯,我們通常會得到一個非常醒目的提示。我相信各位應該都遇到不小心寫錯程序時python給出的錯誤想信息,比如下面這個:

遇到錯誤,首先要做的就是找到原因。Python會告訴我們錯誤出現的位置、行號,以及錯誤的類型。上圖出現的錯誤類型就是“Type Error”錯誤,這是因爲我們嘗試把一個字符類型和一個數據類型加在一起。錯誤的類型很多,類型與類型之間存在着繼承的關係,可以參考下面這篇文章。

https://docs.python.org/2/library/exceptions.html#exception-hierarchy

有時候錯誤提示還會用一個小小的^符號幫我們指出錯誤的位置,像這樣:

這種情況更多出現在我們把語句寫錯的時候。

未雨綢繆

如果想要增加程序的穩定性(健壯性),我們應該儘可能的考慮可能發生錯誤的點以及用戶的使用方式,以使得程序不會輕易的崩潰。不合理的輸入是最常見的問題,比它還要常見的則是代碼本身寫錯了。

這個小節的意義是提醒你在寫完程序之後重新讀讀自己寫的代碼,而且要仔細要認真。一旦你學會了定位問題,你的編程功力便上升了一個等級。

現在,我們知道了定位問題的方法。下面,我們來看看具體要怎麼寫處理問題的代碼。

 

在上面的代碼中,我們讓用戶輸入一個值,並嘗試通過給這個值加一的方式看看它是不是一個數字。(好吧這其實挺可愛的 如果用戶輸入的根本不是一個數字又怎麼加一呢?+1s)如果是一個數字,那麼我們就輸出用戶輸入的數字;如果不是數字,我們就輸出提示。

輸入了數字的時候運行結果如下:

輸入字符的時候運行結果如下:

 

如果我們所見,我們在輸入數字的時候得到了想要的結果,但是當我們輸入字符串的時候,程序直接崩了。

 

下面來使用try和except。

我們再來看看現在程序會怎麼運行:

 

 

 

現在,我們的程序可以如我們期待的一樣運行了。

 

總結

在這一篇中我們講述了一些基本的概念,包括’錯誤不全都是壞的’、通過python給出的錯誤提示信息分析錯誤以及通過思考來找到代碼裏的潛在缺陷。我們還嘗試了通過try和except來處理可能遇到的錯誤。

 

練習

嘗試自己製造出各種各樣的錯誤,然後看看它們的錯誤類型;捕捉並處理這些錯誤。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章