简明 Python 教程
第13章 异常
上一页 引发异常 下一页

引发异常

你可以使用raise语句 引发 异常。你还得指明错误/异常的名称和伴随异常 触发的 异常对象。你可以引发的错误或异常应该分别是一个ErrorException类的直接或间接导出类。

如何引发异常

例13.2 如何引发异常

#!/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.

它如何工作

这里,我们创建了我们自己的异常类型,其实我们可以使用任何预定义的异常/错误。这个新的异常类型是ShortInputException类。它有两个域——length是给定输入的长度,atleast则是程序期望的最小长度。

except从句中,我们提供了错误类和用来表示错误/异常对象的变量。这与函数调用中的形参和实参概念类似。在这个特别的except从句中,我们使用异常对象的lengthatleast域来为用户打印一个恰当的消息。


上一页 上一级 下一页
try..except 首页 try..finally
时时彩计划软件公式
@ssv
时时彩百分百计划 重庆时时彩计划网页 大龙虾江西时时彩 优游平台手机登录 时时彩杀跨度什么意思
江西时时彩走势求高手帮忙啊 abc时时彩平台 静观其变解封平台 时时彩开奖时间差作弊 重庆时时彩彩无敌2.6
江西时时彩传号 英皇娱乐时时彩诈骗 酷彩娱乐 重庆时时彩送彩金团队 时时彩和值技巧稳赚
世爵平台注册 南粤风采36选7开奖结果 时时彩宣传图片 重庆时时彩个位公式 重庆时时彩开上鼎狐网
云南快乐十分开奖视频 青海快3基本走势图 赛马会.cc 广东十一选五走势图彩经网 江西多乐彩开奖查询039
内蒙古时时彩号码预测 007皇家赌场下载 玩pk10最大的平台 七星瓢虫 青海11选5开奖走势图
感动的故事 北京赛车pk10下载安装 2017幸运飞艇直播 河南11选5今日开奖结果走势图 福彩3d丹东先锋快报
体彩排列5 北京赛车女郎视频 北京赛车pk10开奖直播软件下载 傲世九重天txt下载 北京赛车规则介绍