>> 1/0Traceback (most recent call last):File " />

<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        python異常大總結

        來源:懂視網 責編:小采 時間:2020-11-27 14:28:07
        文檔

        python異常大總結

        python異常大總結:python用異常對象(exception object)來表示異常情況。遇到錯誤后,會引發(fā)異常。如果異常對象并未被處理或捕捉,程序就會用所謂的 回溯(Traceback, 一種錯誤信息)終止執(zhí)行:>>> 1/0Traceback (most recent call last):File
        推薦度:
        導讀python異常大總結:python用異常對象(exception object)來表示異常情況。遇到錯誤后,會引發(fā)異常。如果異常對象并未被處理或捕捉,程序就會用所謂的 回溯(Traceback, 一種錯誤信息)終止執(zhí)行:>>> 1/0Traceback (most recent call last):File

        python用異常對象(exception object)來表示異常情況。遇到錯誤后,會引發(fā)異常。如果異常對象并未被處理或捕捉,程序就會用所謂的 回溯(Traceback, 一種錯誤信息)終止執(zhí)行:

        >>> 1/0

        Traceback (most recent call last):

        File "", line 1, in

        1/0

        ZeroDivisionError: integer division or modulo by zero

        raise 語句

        為了引發(fā)異常,可以使用一個類(Exception的子類)或者實例參數數調用raise 語句。下面的例子使用內建的Exception異常類:

        >>> raise Exception #引發(fā)一個沒有任何錯誤信息的普通異常
        Traceback (most recent call last):
        File "", line 1, in 
        raise Exception
        Exception
        >>> raise Exception('hyperdrive overload') # 添加了一些異常錯誤信息
        Traceback (most recent call last):
        File "", line 1, in 
        raise Exception('hyperdrive overload')
        Exception: hyperdrive overload

        系統(tǒng)自帶的內建異常類:

        >>> import exceptions

        >>> dir(exceptions)

        ['ArithmeticError', 'AssertionError', 'AttributeError', 'BaseException', 'BufferError', 'BytesWarning', 'DeprecationWarning', 'EOFError', 'EnvironmentError', 'Exception', 'FloatingPointError', 'FutureWarning', 'GeneratorExit', 'IOError', 'ImportError', 'ImportWarning', 'IndentationError', 'IndexError', 'KeyError', 'KeyboardInterrupt', 'LookupError', 'MemoryError', 'NameError', 'NotImplementedError', 'OSError', 'OverflowError', 'PendingDeprecationWarning', 'ReferenceError', 'RuntimeError', 'RuntimeWarning', 'StandardError', 'StopIteration', 'SyntaxError', 'SyntaxWarning', 'SystemError', 'SystemExit', 'TabError', 'TypeError', 'UnboundLocalError', 'UnicodeDecodeError', 'UnicodeEncodeError', 'UnicodeError', 'UnicodeTranslateError', 'UnicodeWarning', 'UserWarning', 'ValueError', 'Warning', 'WindowsError', 'ZeroDivisionError', '__doc__', '__name__', '__package__']

        哇!好多,常用的內建異常類:

        自定義異常

        盡管內建的異常類已經包括了大部分的情況,而且對于很多要求都已經足夠了,但有些時候還是需要創(chuàng)建自己的異常類。

        和常見其它類一樣----只是要確保從Exception類繼承,不管直接繼承還是間接繼承。像下面這樣:

        >>> class someCustomExcetion(Exception):pass

        當然,也可以為這個類添加一些方法。

        捕捉異常

        我們可以使用 try/except 來實現異常的捕捉處理。

        假設創(chuàng)建了一個讓用戶輸入兩個數,然后進行相除的程序:

        x = input('Enter the first number: ')
        y = input('Enter the second number: ')
        print x/y
        #運行并且輸入
        Enter the first number: 10
        Enter the second number: 0
        Traceback (most recent call last):
        File "I:/Python27/yichang", line 3, in 
        print x/y
        ZeroDivisionError: integer division or modulo by zero
        為了捕捉異常并做出一些錯誤處理,可以這樣寫:
        try:
        x = input('Enter the first number: ')
        y = input('Enter the second number: ')
        print x/y
        except ZeroDivisionError:
          print "輸入的數字不能為0!"
          
        #再來運行
        >>>
        Enter the first number: 10
        Enter the second number: 0

        輸入的數字不能為0! #怎么樣?這次已經友好的多了

        假如,我們在調試的時候引發(fā)異常會好些,如果在與用戶的進行交互的過程中又是不希望用戶看到異常信息的。那如何開啟/關閉 “屏蔽”機制?

        class MuffledCalulator:
        muffled = False #這里默認關閉屏蔽
        def calc(self,expr):
        try:
        return eval(expr)
        except ZeroDivisionError:
        if self.muffled:
        print 'Divsion by zero is illagal'
        else:
        raise
        #運行程序:
        >>> calculator = MuffledCalulator()
        >>> calculator.calc('10/2')
        5
        >>> calculator.clac('10/0')
        Traceback (most recent call last):
        File "", line 1, in 
        calculator.clac('10/0')
        AttributeError: MuffledCalulator instance has no attribute 'clac' #異常信息被
        輸出了 >>> calculator.muffled = True #現在打開屏蔽 >>> calculator.calc('10/0') Divsion by zero is illagal

        多個except 子句

        如果運行上面的(輸入兩個數,求除法)程序,輸入面的內容,就會產生另外一個異常:

        try:
        x = input('Enter the first number: ')
        y = input('Enter the second number: ')
        print x/y
        except ZeroDivisionError:
          print "輸入的數字不能為0!"
          
        #運行輸入:
        >>>
        Enter the first number: 10
        Enter the second number: 'hello.word' #輸入非數字
        Traceback (most recent call last):
        File "I:Python27yichang", line 4, in 
        print x/y
        TypeError: unsupported operand type(s) for /: 'int' and 'str' #又報出了別的異常信息

        好吧!我們可以再加個異常的處理來處理這種情況:

        try:
        x = input('Enter the first number: ')
        y = input('Enter the second number: ')
        print x/y
        except ZeroDivisionError:
        print "輸入的數字不能為0!"
        except TypeError: # 對字符的異常處理
          print "請輸入數字!"
          
        #再來運行:
        >>>
        Enter the first number: 10
        Enter the second number: 'hello,word'

        請輸入數字!

        一個塊捕捉多個異常

        我們當然也可以用一個塊來捕捉多個異常:

        try:
        x = input('Enter the first number: ')
        y = input('Enter the second number: ')
        print x/y
        except (ZeroDivisionError,TypeError,NameError):
        print "你的數字不對!

        "

        捕捉全部異常

        就算程序處理了好幾種異常,比如上面的程序,運行之后,假如我輸入了下面的內容呢

        >>>
        Enter the first number: 10
        Enter the second number: #不輸入任何內容,回車
        Traceback (most recent call last):
        File "I:Python27yichang", line 3, in 
        y = input('Enter the second number: ')
        File "", line 0
        ^
        SyntaxError: unexpected EOF while parsing

        暈死~! 怎么辦呢?總有被我們不小心忽略處理的情況,如果真想用一段代碼捕捉所有異常,那么可在except子句中忽略所有的異常類:

        try:
        x = input('Enter the first number: ')
        y = input('Enter the second number: ')
        print x/y
        except:
        print '有錯誤發(fā)生了!'
        #再來輸入一些內容看看
        >>>
        Enter the first number: 'hello' * )0

        有錯誤發(fā)生了!

        結束

        別急!再來說說最后一個情況,好吧,用戶不小心輸入了錯誤的信息,能不能再給次機會輸入?我們可以加個循環(huán),保你輸對時才結束:

        while True:
        try:
        x = input('Enter the first number: ')
        y = input('Enter the second number: ')
        value = x/y
        print 'x/y is',value
        except:
        print '列效輸入,再來一次!'
        #運行
        >>>
        Enter the first number: 10
        Enter the second number:
        列效輸入,再來一次!
        Enter the first number: 10
        Enter the second number: 'hello'
        列效輸入,再來一次!
        Enter the first number: 10
        Enter the second number: 2
        x/y is 5

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        python異常大總結

        python異常大總結:python用異常對象(exception object)來表示異常情況。遇到錯誤后,會引發(fā)異常。如果異常對象并未被處理或捕捉,程序就會用所謂的 回溯(Traceback, 一種錯誤信息)終止執(zhí)行:>>> 1/0Traceback (most recent call last):File
        推薦度:
        標簽: 錯誤 異常 匯總
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲AV无码国产精品永久一区| 免费人妻av无码专区| 亚洲日韩一页精品发布| 精品一区二区三区无码免费直播| 亚洲精品线在线观看| a级毛片免费高清毛片视频| 亚洲国产精品一区二区三区久久| 污网站免费在线观看| 又粗又大又硬又爽的免费视频| 精品韩国亚洲av无码不卡区| 国产一区二区三区在线观看免费| 亚洲AV成人精品日韩一区| 暖暖免费高清日本一区二区三区| 伊人久久大香线蕉亚洲| 亚洲人成电影在线观看网| 57pao一国产成永久免费| 亚洲综合精品网站| 亚洲精品二三区伊人久久| 国产乱码免费卡1卡二卡3卡| 久久精品国产精品亚洲精品| 亚洲av日韩av永久无码电影| 日韩免费无砖专区2020狼| 免费VA在线观看无码| 自拍偷自拍亚洲精品被多人伦好爽| 国产黄在线观看免费观看不卡| 久久久久久国产a免费观看黄色大片| 亚洲三级中文字幕| 免费在线黄色电影| 男人的天堂亚洲一区二区三区| 亚洲国产激情一区二区三区| 亚洲黄片手机免费观看| 久久综合日韩亚洲精品色| 成人在线免费视频| 免费激情视频网站| gogo免费在线观看| 亚洲精品日韩专区silk| 免费毛片a线观看| 日韩亚洲不卡在线视频中文字幕在线观看 | 黑人粗长大战亚洲女2021国产精品成人免费视频 | 国产成人亚洲精品播放器下载| 精品亚洲成α人无码成α在线观看|