91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python中錯誤與異常如何處理

發布時間:2021-11-25 14:30:24 來源:億速云 閱讀:115 作者:小新 欄目:大數據

這篇文章主要介紹了Python中錯誤與異常如何處理,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

前言

語法錯誤

SyntaxError 類表示語法錯誤,當解釋器發現代碼無法通過語法檢查時會觸發的錯誤。語法錯誤是無法用 try...except...捕獲的。

>>> print:
  File "<stdin>", line 1
    print:
         ^
SyntaxError: invalid syntax

異常

Python使用被稱為異常的特殊對象來管理程序執行期間發生的錯誤,每當發生讓Python不知所措的錯誤時,它都會創建一個異常對象,如果編寫了處理異常的代碼,程序將繼續運行;如果未對異常做處理,程序將進行停止,并顯示一個traceback,其中包含有關異常的報告。

異常處理

print(5/0)

運行結果:

Traceback (most recent call last):
  File "文件與異常/文件與異常.py", line 228, in <module>
    print(5/0)
ZeroDivisionError: division by zero

異常處理使用以下格式:

try-except代碼塊
 
try-except代碼塊
try:
    print(5/0)
except ZeroDivisionError:
    print("can't divide by zero")
#結果
 print("can't divide by zero")
拋出異常

拋出異常

使用 raise 語句拋出一個指定的異常。

raise 唯一的一個參數指定了要被拋出的異常。它必須是一個異常的實例或者是異常的類(也就是 Exception 的子類)。

如果你只想知道這是否拋出了一個異常,并不想去處理它,那么一個簡單的 raise 語句就可以再次把它拋出。

自定義異常

可以通過創建一個新的異常類來擁有自己的異常。異常類繼承自 Exception 類,可以直接繼承,或者間接繼承。

當創建一個模塊有可能拋出多種不同的異常時,一種通常的做法是為這個包建立一個基礎異常類,然后基于這個基礎類為不同的錯誤情況創建不同的子類。

大多數的異常的名字都以”Error”結尾,就跟標準的異常命名一樣。

實例

 
import sys


class Error(Exception):
    """Base class for exceptions in this module."""
    pass


# 自定義異常
class InputError(Error):
    """Exception raised for errors in the input.

    Attributes:
        expression -- input expression in which the error occurred
        message -- explanation of the error
    """

    def __init__(self, expression, message):
        self.expression = expression
        self.message = message


try:
    print('code start running...')

    raise InputError('input()', 'input error')

    # ValueError
    int('a')

    # TypeError
    s = 1 + 'a'

    dit = {'name': 'john'}
    # KeyError
    print(dit['1'])
except InputError as ex:
    print("InputError:", ex.message)
except TypeError as ex:
    print('TypeError:', ex.args)
    pass
except (KeyError, IndexError) as ex:
    """支持同時處理多個異常, 用括號放到元組里"""
    print(sys.exc_info())
except:
    """捕獲其他未指定的異常"""
    print("Unexpected error:", sys.exc_info()[0])
    # raise 用于拋出異常
    raise RuntimeError('RuntimeError')
else:
    """當無任何異常時, 會執行 else 子句"""
    print('"else" 子句...')
finally:
    """無論有無異常, 均會執行 finally"""
    print('finally, ending')

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Python中錯誤與異常如何處理”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黎城县| 丰都县| 南和县| 东莞市| 通渭县| 秭归县| 新巴尔虎左旗| 灵石县| 眉山市| 绥芬河市| 嵩明县| 内乡县| 积石山| 格尔木市| 西青区| 宁陵县| 墨脱县| 隆尧县| 邵阳县| 济源市| 锦屏县| 西乡县| 隆德县| 崇信县| 黄龙县| 益阳市| 池州市| 滨海县| 大名县| 凤山市| 韩城市| 南召县| 灌云县| 江口县| 河南省| 大港区| 南部县| 定南县| 塔城市| 沂水县| 封开县|