【Python 第36課】 異常處理

2021-12-23 Crossin的編程教室

在程序運行時,如果我們的代碼引發了錯誤,python就會中斷程序,並且輸出錯誤提示。

比如我們寫了一句:

print int('0.5')

運行後程序得到錯誤提示:

Traceback (most recent call last):

 File "C:/Python27/test.py", line 1, in <module>

   print int('0.5')

ValueError: invalid literal for int() with base 10: '0.5'

意思是,在test.py這個文件,第1行,print int('0.5')這裡,你拿了一個不是10進位能夠表示的字符,我沒法把它轉成int值。

上面的錯誤可以避免,但在實際的應用中,有很多錯誤是開發者無法控制的,例如用戶輸入了一個不合規定的值,或者需要打開的文件不存在。這些情況被稱作「異常」,一個好的程序需要能處理可能發生的異常,避免程序因此而中斷。

例如我們去打開一個文件:

f = file('non-exist.txt')

print 'File opened!'

f.close()

假如這個文件因為某種原因並沒有出現在應該出現的文件夾裡,程序就會報錯:

IOError: [Errno 2] No such file or directory: 'non-exist.txt'

程序在出錯處中斷,後面的print不會被執行。

在python中,可以使用try...except語句來處理異常。做法是,把可能引發異常的語句放在try-塊中,把處理異常的語句放在except-塊中。

把剛才那段代碼放入try...except中:

try:

   f = file('non-exist.txt')

   print 'File opened!'

   f.close()

except:

   print 'File not exists.'

print 'Done'

當程序在try內部打開文件引發異常時,會跳過try中剩下的代碼,直接跳轉到except中的語句處理異常。於是輸出了「File not exists.」。如果文件被順利打開,則會輸出「File opened!」,而不會去執行except中的語句。

但無論如何,整個程序不會中斷,最後的「Done」都會被輸出。

在try...except語句中,try中引發的異常就像是扔出了一隻飛盤,而except就是一隻靈敏的狗,總能準確地接住飛盤。

#==== Crossin的編程教室 ====#

微信ID:crossincode

QQ群:312723402

面向零基礎初學者的編程課

每天5分鐘,輕鬆學編程

回復『 p 』查看課程目錄

回復『 t 』查看習題列表

點擊「閱讀原文」可進入討論版

相關焦點

  • Python學習第50課-處理錯誤和異常
    【每天幾分鐘,從零入門python編程的世界!】在工作當中會經常出現意料不到的錯誤和異常,就需要我們對可能出現的錯誤和異常進行預判,然後加上捕獲和處理錯誤異常的代碼,否則,程序在運行過程中,遇到錯誤和異常就會crash崩潰,無法繼續向下執行。●Python的錯誤種類:①語法錯誤,或稱解析錯誤。
  • Python異常處理
    問題描述大家在使用python語言寫代碼的時候難免會出一些錯誤,而才入門的朋友們往往不知道是哪裡出了錯或者不知道自己錯在哪裡、什麼錯誤。所以我們要知道是哪行代碼出錯,其次室錯誤的類型是什麼,錯在那個細節,逐步分析,從而解決錯誤並改正。
  • python入門——Python中異常處理
    python大數據課堂已經開始了。想轉行大數據,數據挖掘,機器學習,人工智慧的小夥伴可以關注啦。上一篇帶大家了解了python中的I/O函數。今天我們來繼續了解python中的異常處理。調試環境以python3.6環境為例。需要代碼和demo的朋友可以搜索「欒鵬全棧」到我的CSDN博客。
  • python入門第十三課:文件的讀寫與分析介紹,異常處理和代碼重構
    ##本教程使用的課本是《Python編程:從入門到實踐》,作者:[美] Eric Matthes學完前面十二節課,已完成Python編程入門了,我們已經能編寫組織有序而易於使用的Python程序了。接來下繼續學習更多應用操作,比如文件操作、數據存儲、異常處理等,這些技巧能讓我們快速的處理大量的數據,讓程序更加健壯。
  • [Python]文件與異常的錯誤處理
    [Python]文件與異常的錯誤處理1.文件的處理過程# 文件基本操作:打開文件,處理文件,關閉文件the_file = open("sketch.txt", 'r')line_content = the_file.readline()  # 不指定readline的參數,讀取一整行print(line_content)
  • python基礎---異常處理
    程序的異常處理今天霖小白心血來潮想來分享一下python基礎中的如何異常處理,使程序有更好的用戶體驗。前言python程序對用戶的輸入有一定的要求,所以當實際輸入不滿足程序要求時,可能在程序運行過程中會直接報錯無法進行下一步的運行。
  • python入門學習異常處理類型
    前言異常是指在程序執行過程中發生的一個事件,影響了程序的正常執行,例如:0做了分母。異常是Python對象,表示一個錯誤。當Python腳本發生異常時我們需要捕獲處理它,否則程序會終止執行。在Java語言中我們知道異常的常用結構為try catch組成,有時也會用到finally,那麼在python中異常是如何來處理的呢?python中的異常處理1.python異常簡單語法python異常的簡單語法為try-except-else語法,注意這裡的關鍵字是except而不是Exception,這與java是有區別的。
  • python面向對象之異常處理
    異常的概念 程序在運行時,如果 `Python 解釋器` 遇到 到一個錯誤,會停止程序的執行,並且提示一些錯誤信息,這就是 異常 程序停止執行並且提示錯誤信息 這個動作,我們通常稱之為:拋出(raise)異常> 程序開發時,很難將 所有的特殊情況 都處理的面面俱到,通過 異常捕獲 可以針對突發事件做集中的處理,從而保證程序的 穩定性和健壯性
  • python 異常處理
    對於python來說,就是工廠類被具體工廠繼承。這樣在簡單工廠模式裡集中在工廠方法上的壓力可以由工廠方法模式裡不同的工廠子類來分擔。抽象的工廠類提供了一個創建對象的方法,也叫作工廠方法。1) 抽象工廠角色(Factory): 這是工廠方法模式的核心,它與應用程式無關。是具體工廠角色必須實現的接口或者必須繼承的父類。
  • python異常處理與上下文管理器
    作者丨王翔丨來研丨清風Pythonpython異
  • 一篇文章幫你搞定Python異常處理
    =1+'str'什麼是異常異常就是程序運行時發生錯誤的信號,在python中,錯誤觸發的異常如下Python中異常種類在python中不同的異常可以用不同的類型(python中統一了類與類型,類型即類)去標識,不同的類對象標識不同的異常,一個異常標識一種錯# 觸發IndexErrorl=['run1','aa']
  • python教程之九錯誤和異常處理
    大多數的異常都不會被程序處理,都以錯誤信息的形式展現在這裡:>>> 10 * (1/0)Traceback (most recent call last):File "<pyshell#78>", line 1, in <module>10 * (1/0)ZeroDivisionError
  • 十、python基礎之異常處理結構與程序調試方法
    實驗目的:學習python的異常處理和程序調試實驗環境:已正確安裝python3.51、異常的基本概念異常是指程序運行時引發的錯誤,得不到正確的處理將會導致程序終止運行合理地使用異常處理結構可以使得程序更加健壯,具有更強的容錯性。例如:最常見的除數為0,python會拋出「ZeroDivisionError"異常。
  • Python基礎--異常
    概念區分是由於邏輯或語法導致一個程序無法正常運行的問題, 錯誤的特點是有些錯誤是無法預知的通知上層調用者,有錯誤產生需要處理, 用作信號通知是程序出錯時的一種狀態, 當異常發生時,程序不會向下繼續執行,而轉去調用此函數的地方,待處理此錯誤ZeroDivisionError 除(或取模)零StopIteration
  • 深入 Python 異常處理
    【導語】:本文結合例程總結Python異常處理的相關知識,幫你深入理解python異常處理。在Python 中的錯誤和異常是什麼?通常來說,程序中的錯誤至少包括兩種,一種是語法錯誤,另一種則是異常。keyError 字典的鍵找不到和FileNotFoundError 文件不存在try except使用Python的異常處理語句,可以非常優雅地處理發生的異常。
  • 第16天:Python 錯誤和異常
    在 Python 中,異常是一個對象,用於表示一個錯誤,當 Python腳本發生異常時我們需要捕獲和處理它,否則程序會終止執行。處理異常Python 提供了 try/except語句用來捕獲和處理異常。try 語句用來檢測語句塊中是否有錯誤,except 語句則用來捕獲 try 語句中的異常,並進行處理,附加的 else 可以在 try 語句沒有異常時執行。
  • python中異常報錯的總結分析與處理方式
    想必到現在經過python基礎的學習之後,小夥伴們都已經開始寫很多腳本了,有大的有小的,但是有的時候並不是所寫的能夠順利跑出結果來,期間會有不但的報錯以及異常,很多我們都不理解,所以也就不會修改,這是寫腳本中常遇到的問題,雖然在當時被定型為絆腳石,但是多次遇到異常後我們會發現這是一筆不可多得的財富。對個人的成長有很大的幫助。
  • 16-python中的異常
    通過前兩天的文章14-python中的函數,15-再敘python中的函數我們對python中有關函數的知識有了系統的認識和學習,今天我們將接著來看一下python中的異常。(一)Bug的由來和分類    "Bug"一詞的原意是"昆蟲"或"蟲子";而在電腦系統或程序中隱藏著的一些未被發現的缺陷或問題,人們也叫它"bug"。
  • 【Python基礎】10 異常處理
    一 什麼是異常異常是程序發生錯誤的信號。程序一旦出現錯誤,便會產生一個異常,若程序中沒有處理它,就會拋出該異常,程序的運行也隨之終止。為了保證程序的容錯性與可靠性,即在遇到錯誤時有相應的處理機制不會任由程序崩潰掉,我們需要對異常進行處理,處理的基本形式為try:    被檢測的代碼塊except 異常類型:    檢測到異常,就執行這個位置的邏輯
  • python妙招-異常處理之try-except
    Python中檢測處理異常是非常重要的,這可以增加代碼的健壯性,我們在寫python程序的時候,會可能會遇到一些不可預料的情況,一旦遇到這些情況,運行時程序便可能會崩潰。比如:讀寫文件時候文件打開錯誤或者文件寫入錯誤,寫爬蟲時網絡請求失敗,返回錯誤404.再或者函數處理一些不確定參數時候,都可以用到異常捕獲。