python 异常 try-except句型

1.句型

try:

     表达式 1(如果表达式,可以成功执行,则执行,跳到 finally 语句)

except ExpectErrorType, Argument:   (表达式1 没有做成功,且正好是 ExpectErrorType 的错误情况,则执行)

     表达式2 (如何处理这种异常情况)

else:  (try succ && 上面 except 语句任一满足 )之外的情况处理方法

  .....

finally:

    .... 无论什么情况都会的处理

2.except 子句解释

except ExceptErrorType , Argument:
ExceptErrorType: 期待的错误类型
Argument 是异常类的实例, 包含来自异常代码的诊断信息。如果你捕获了一个异常,你就可以通过这个异常类的实例来获取更多的关于这个异常的信息。

>>> try:  
...     1/0  
... except ZeroDivisionError,reason:  
...     pass  
...   
>>> type(reason)  
<type 'exceptions.ZeroDivisionError'>  
>>> print reason  
integer division or modulo by zero  
>>> reason  
ZeroDivisionError('integer division or modulo by zero',)  
>>> reason.__class__  
<type 'exceptions.ZeroDivisionError'>  
>>> reason.__class__.__doc__  
'Second argument to a division or modulo operation was zero.'  
>>> reason.__class__.__name__  
'ZeroDivisionError' 

3.多个异常:

1)写多个except 子句

2)一个except 子句传多个参数

e.g

try:  
    floatnum = float(raw_input("Please input a float:"))  
    intnum = int(floatnum)  
    print 100/intnum  
except ZeroDivisionError:  
    print "Error:you must input a float num which is large or equal then 1!"  
except ValueError:  
    print "Error:you must input a float num!"  

[root@]# python test.py   
Please input a float:fjia  
Error:you must input a float num!  
[root@]# python test.py   
Please input a float:0.9999  
Error:you must input a float num which is large or equal then 1!  
[root@]# python test.py   
Please input a float:25.091  
4  

4.异常情况 ExceptErrorType

BaseException
+-- SystemExit
+-- KeyboardInterrupt
+-- GeneratorExit
+-- Exception
+-- StopIteration
+-- StandardError
|    +-- BufferError
|    +-- ArithmeticError
|    |    +-- FloatingPointError
|    |    +-- OverflowError
|    |    +-- ZeroDivisionError 除数为0
|    +-- AssertionError
|    +-- AttributeError  尝试访问未知的对象属性
|    +-- EnvironmentError
|    |    +-- IOError  输入输出错误(比如你要读的文件不存在)
|    |    +-- OSError
|    |         +-- WindowsError (Windows)
|    |         +-- VMSError (VMS)
|    +-- EOFError
|    +-- ImportError
|    +-- LookupError
|    |    +-- IndexError 索引超出序列范围
|    |    +-- KeyError 请求一个不存在的字典关键字
|    +-- MemoryError
|    +-- NameError  尝试访问一个没有申明的变量
|    |    +-- UnboundLocalError
|    +-- ReferenceError
|    +-- RuntimeError
|    |    +-- NotImplementedError
|    +-- SyntaxError 语法错误
|    |    +-- IndentationError
|    |         +-- TabError
|    +-- SystemError
|    +-- TypeError
|    +-- ValueError  传给函数的参数类型不正确,比如给int()函数传入字符串形
|         +-- UnicodeError
|              +-- UnicodeDecodeError
|              +-- UnicodeEncodeError
|              +-- UnicodeTranslateError
+-- Warning
+-- DeprecationWarning
+-- PendingDeprecationWarning
+-- RuntimeWarning
+-- SyntaxWarning
+-- UserWarning
+-- FutureWarning
+-- ImportWarning
+-- UnicodeWarning
+-- BytesWarning
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值