鍍金池/ 教程/ Python/ 如何引發(fā)異常
備份腳本——版本四
使用 <strong>init</strong> 方法
控制流
異常
表 15.1 一些特殊的方法
如何創(chuàng)建你自己的模塊
使用字典
前言
使用默認參數(shù)值
表 5.1 運算符與它們的用法
解決問題——編寫一個 Python 腳本
使用 for 語句
使用 continue 語句
使用元組輸出
對象與參考
使用函數(shù)形參
使用默認參數(shù)值
使用 if 語句
如何引發(fā)異常
使用源文件
使用對象的方法
使用表達式
定義函數(shù)
使用局部變量
使用列表綜合
使用 sys.argv
使用 lambda 形式
使用 global 語句
備份腳本——版本二
使用列表
使用 while 語句
備份腳本——版本一
使用元組
輸入/輸出
使用類與對象的變量
使用 sys 模塊
表 5.2 運算符優(yōu)先級
處理異常
使用 break 語句
函數(shù)
基本概念
運算符與表達式
介紹
使用文件
使用序列
接下來學習什么?
使用帶提示符的 Python 解釋器
使用 DocStrings
使用字面意義上的語句
最初的步驟
數(shù)據(jù)結(jié)構(gòu)
儲存與取儲存
使用 dir 函數(shù)
模塊
Python 標準庫
備份腳本——版本三(不工作?。?/span>
創(chuàng)建一個類
安裝 Python
面向?qū)ο蟮木幊?/span>
使用模塊的<strong>name</strong>
使用變量和字面意義上的常量
使用繼承

如何引發(fā)異常


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

    class ShortInputException(Exception):
        '''A user-defined exception class.'''
        def __init__(self, length, atleast):
            Exception.__init__(self)
             self.length = length
            self.atleast = atleast

    try:
        s = raw_input('Enter something --> ')
        if len(s) < 3:
            raise ShortInputException(len(s), 3)
        # Other work can continue as usual here
    except EOFError:
        print '\nWhy did you do an EOF on me?'
    except ShortInputException, x:
        print 'ShortInputException: The input was of length %d, \
              was expecting at least %d' % (x.length, x.atleast)
    else:
        print 'No exception was raised.'

源文件(code/raising.py

輸出


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

    $ python raising.py
    Enter something --> ab
    ShortInputException: The input was of length 2, was expecting at least 3

    $ python raising.py
    Enter something --> abc
    No exception was raised.

它如何工作

這里,我們創(chuàng)建了我們自己的異常類型,其實我們可以使用任何預定義的異常/錯誤。這個新的異常類型是 ShortInputException 類。它有兩個域—— length 是給定輸入的長度,atleast 則是程序期望的最小長度。

在 except 從句中,我們提供了錯誤類和用來表示錯誤/異常對象的變量。這與函數(shù)調(diào)用中的形參和實參概念類似。在這個特別的 except 從句中,我們使用異常對象的 length 和 atleast 域來為用戶打印一個恰當?shù)南ⅰ?/p>