簡明Python教程

來源:互聯網
上載者:User

當你的程式中出現某些 異常的 狀況的時候,異常就發生了。例如,當你想要讀某個檔案的時候,而那個檔案不存在。或者在程式啟動並執行時候,你不小心把它刪除了。上述這些情況可以使用異常來處理。

假如你的程式中有一些無效的語句,會怎麼樣呢?Python會引發並告訴你那裡有一個錯誤,從而處理這樣的情況。

錯誤

考慮一個簡單的print語句。假如我們把print誤拼為Print,注意大寫,這樣Python會 引發 一個語法錯誤。

>>> Print 'Hello World'
File "<stdin>", line 1
Print 'Hello World'
^
SyntaxError: invalid syntax
>>> print 'Hello World'
Hello World

我們可以觀察到有一個SyntaxError被引發,並且檢測到的錯誤位置也被列印了出來。這是這個錯誤的 錯誤處理器 所做的工作。

try..except

我們嘗試讀取使用者的一段輸入。按Ctrl-d,看一下會發生什麼。

>>> s = raw_input('Enter something --> ')
Enter something --> Traceback (most recent call last):
File "<stdin>", line 1, in ?
EOFError

Python引發了一個稱為EOFError的錯誤,這個錯誤基本上意味著它發現一個不期望的 檔案尾 (由Ctrl-d表示)

接下來,我們將學習如何處理這樣的錯誤。

處理異常

我們可以使用try..except語句來處理異常。我們把通常的語句放在try-塊中,而把我們的錯誤處理語句放在except-塊中。

例13.1 處理異常

#!/usr/bin/python
# Filename: try_except.py
import sys
try:
s = raw_input('Enter something --> ')
except EOFError:
print '\nWhy did you do an EOF on me?'
sys.exit() # exit the program
except:
print '\nSome error/exception occurred.'
# here, we are not exiting the program
print 'Done'

(源檔案:code/try_except.py)

輸出

$ python try_except.py
Enter something -->
Why did you do an EOF on me?
$ python try_except.py
Enter something --> Python is exceptional!
Done

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.