国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

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

CastlePeaK / 1324人閱讀

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

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

 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將調用默認的處理器處理,并終止程序且給出提示。
2、引發異常
你可以用raise語句來引發一個異常。異常/錯誤對象必須有一個名字,且它們應是Error或Exception類的子類。
下面是一個引發異常的例子:

#!/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引發一個你定義的異常
except EOFError:
    print "/n你輸入了一個結束標記EOF"
except ShortInputException, x:#x這個變量被綁定到了錯誤的實例
    print "ShortInputException: 輸入的長度是 %d, /
        長度至少應是 %d" % (x.length, x.atleast)
else:
    print "沒有異常發生."

運行輸出如下:

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

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

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

3、try...finally語句
當你正在讀文件或還未關閉文件時發生了異常該怎么辦呢?你應該使用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

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

參考資料:
CSDN

凌風技術站pythoon異常機制講解

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/44306.html

相關文章

  • PHP小知識點

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

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

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

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

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

    ShowerSun 評論0 收藏0

發表評論

0條評論

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