成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

python異常機制個人理解(參考網(wǎng)上資料)

CastlePeaK / 1321人閱讀

摘要:如果有一個異常程序沒有處理,那么將調(diào)用默認的處理器處理,并終止程序且給出提示。引發(fā)異常你可以用語句來引發(fā)一個異常。異常錯誤對象必須有一個名字,且它們應(yīng)是或類的子類。參考資料凌風技術(shù)站異常機制講解

當你的程序中出現(xiàn)異常情況時就需要異常處理。比如當你打開一個不存在的文件時。當你的程序中有一些無效的語句時,Python會提示你有錯誤存在。
下面是一個拼寫錯誤的例子,print寫成了Print。Python是大小寫敏感的,因此Python將引發(fā)一個錯誤:

 Print "Hello World"
 File "", line 1
      Print "Hello World"
                        ^
SyntaxError: invalid syntax

>>> print "Hello World"
Hello World

1、try...except語句
try...except語句可以用于捕捉并處理錯誤。通常的語句放在try塊中,錯誤處理語句放在except塊中。示例如下:

#!/usr/bin/python
# Filename: try_except.py

import sys
try:
    s = raw_input("Enter something --> ")
except EOFError:#處理EOFError類型的異常
    print "/nWhy did you do an EOF on me?"
    sys.exit() # 退出程序
except:#處理其它的異常
    print "/nSome error/exception occurred."
    
print "Done"

運行輸出如下:

$ python try_except.py
Enter something -->
Why did you do an EOF on me?

$ python try_except.py
Enter something --> Python is exceptional!
Done

說明:每個try語句都必須有至少一個except語句。如果有一個異常程序沒有處理,那么Python將調(diào)用默認的處理器處理,并終止程序且給出提示。
2、引發(fā)異常
你可以用raise語句來引發(fā)一個異常。異常/錯誤對象必須有一個名字,且它們應(yīng)是Error或Exception類的子類。
下面是一個引發(fā)異常的例子:

#!/usr/bin/python
#文件名: raising.py

class ShortInputException(Exception):
    """你定義的異常類。"""
    def __init__(self, length, atleast):
        Exception.__init__(self)
        self.length = length
        self.atleast = atleast

try:
    s = raw_input("請輸入 --> ")
    if len(s) < 3:
        raise ShortInputException(len(s), 3)
    # raise引發(fā)一個你定義的異常
except EOFError:
    print "/n你輸入了一個結(jié)束標記EOF"
except ShortInputException, x:#x這個變量被綁定到了錯誤的實例
    print "ShortInputException: 輸入的長度是 %d, /
        長度至少應(yīng)是 %d" % (x.length, x.atleast)
else:
    print "沒有異常發(fā)生."

運行輸出如下:

$ python raising.py
請輸入 -->
你輸入了一個結(jié)束標記EOF

$ python raising.py
請輸入 --> --> ab
ShortInputException: 輸入的長度是 2, 長度至少應(yīng)是 3

$ python raising.py
請輸入 --> abc
沒有異常發(fā)生.

3、try...finally語句
當你正在讀文件或還未關(guān)閉文件時發(fā)生了異常該怎么辦呢?你應(yīng)該使用try...finally語句以釋放資源。示例如下:

#!/usr/bin/python
# Filename: finally.py

import time

try:
    f = file("poem.txt")
    while True: # 讀文件的一般方法
        line = f.readline()
        if len(line) == 0:
            break
        time.sleep(2)#每隔兩秒輸出一行
        print line,
finally:
    f.close()
    print "Cleaning up...closed the file"

運行輸出如下:

$ python finally.py
Programming is fun
When the work is done
Cleaning up...closed the file
Traceback (most recent call last):
  File "finally.py", line 12, in ?
    time.sleep(2)
KeyboardInterrupt

說明:我們在兩秒這段時間內(nèi)按下了Ctrl-c,這將產(chǎn)生一個KeyboardInterrupt異常,我們并沒有處理這個異常,那么Python將調(diào)用默認的處理器,并終止程序,在程序終止之前,finally塊中的語句將執(zhí)行。

參考資料:
CSDN

凌風技術(shù)站pythoon異常機制講解

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/44306.html

相關(guān)文章

  • PHP小知識點

    摘要:那些瑣碎的知識點作者記錄的的很奇特很難記的知識點。易錯知識點整理注意和的區(qū)別中和都是輸出的作用,但是兩者之間還是有細微的差別。今天手頭不忙,總結(jié)一下,分享過程中掌握的知識點。 深入理解 PHP 之:Nginx 與 FPM 的工作機制 這篇文章從 Nginx 與 FPM 的工作機制出發(fā),探討配置背后的原理,讓我們真正理解 Nginx 與 PHP 是如何協(xié)同工作的。 PHP 那些瑣碎的知識...

    hover_lew 評論0 收藏0
  • Python中幾種屬性訪問的區(qū)別

    摘要:起步的提供一系列和屬性訪問有關(guān)的特殊方法。本文闡述它們的區(qū)別和用法。屬性的訪問機制一般情況下,屬性訪問的默認行為是從對象的字典中獲取,并當獲取不到時會沿著一定的查找鏈進行查找。則這個類的對象稱為描述符。 起步 python的提供一系列和屬性訪問有關(guān)的特殊方法:__get__, __getattr__, __getattribute__, __getitem__ 。本文闡述它們的區(qū)別和用...

    zhouzhou 評論0 收藏0
  • 我是如何入門機器學(xué)習的呢

    摘要:在這里我分享下我個人入門機器學(xué)習的經(jīng)歷,希望能對大家能有所幫助。相關(guān)學(xué)習鏈接,,入門后的體驗在入門了機器學(xué)習之后,在實際工作中,絕大多數(shù)的情況下你并不需要去創(chuàng)造一個新的算法。 機器學(xué)習在很多眼里就是香餑餑,因為機器學(xué)習相關(guān)的崗位在當前市場待遇不錯,但同時機器學(xué)習在很多人面前又是一座大山,因為發(fā)現(xiàn)它太難學(xué)了。在這里我分享下我個人入門機器學(xué)習的經(jīng)歷,希望能對大家能有所幫助。 PS:這篇文章...

    ShowerSun 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<