成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Python中錯誤與異常如何處理

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

為新密等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及新密網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)、新密網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會得到認(rèn)可,從而選擇與我們長期合作。這樣,我們也可以走得更遠(yuǎn)!

前言

語法錯誤

SyntaxError 類表示語法錯誤,當(dāng)解釋器發(fā)現(xiàn)代碼無法通過語法檢查時會觸發(fā)的錯誤。語法錯誤是無法用 try...except...捕獲的。

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

異常

Python使用被稱為異常的特殊對象來管理程序執(zhí)行期間發(fā)生的錯誤,每當(dāng)發(fā)生讓Python不知所措的錯誤時,它都會創(chuàng)建一個異常對象,如果編寫了處理異常的代碼,程序?qū)⒗^續(xù)運行;如果未對異常做處理,程序?qū)⑦M(jìn)行停止,并顯示一個traceback,其中包含有關(guān)異常的報告。

異常處理

print(5/0)

運行結(jié)果:

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")
#結(jié)果
 print("can't divide by zero")
拋出異常

拋出異常

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

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

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

自定義異常

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

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

大多數(shù)的異常的名字都以”Error”結(jié)尾,就跟標(biāo)準(zhǔn)的異常命名一樣。

實例

 
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:
    """當(dāng)無任何異常時, 會執(zhí)行 else 子句"""
    print('"else" 子句...')
finally:
    """無論有無異常, 均會執(zhí)行 finally"""
    print('finally, ending')

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Python中錯誤與異常如何處理”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

標(biāo)題名稱:Python中錯誤與異常如何處理
瀏覽路徑:http://jinyejixie.com/article4/pgeeie.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、網(wǎng)站營銷、面包屑導(dǎo)航、建站公司、網(wǎng)站策劃、搜索引擎優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)
文安县| 汶上县| 淮南市| 常熟市| 法库县| 丰顺县| 临武县| 闽清县| 阿巴嘎旗| 芦山县| 土默特左旗| 星座| 青海省| 阳曲县| 红桥区| 丰原市| 连平县| 沭阳县| 葵青区| 五指山市| 富锦市| 延边| 许昌县| 清水县| 涿鹿县| 安乡县| 仲巴县| 巴楚县| 东辽县| 塘沽区| 茶陵县| 五华县| 东安县| 祁连县| 米林县| 合江县| 萝北县| 鸡东县| 卓资县| 澎湖县| 青河县|