python的学习(十)----异常处理(1)

python中的异常处理(1)

 

异常是指因为程序出现了错误而在正常控制流以外采取的行动,其分为两个阶段,第一阶段是引发异常的错误,当系统检测到错误并且意识到异常条件,解释器(也可以是程序员引发异常)会引发一个异常通知前段控制流有错误发生,对异常的处理发生在第二阶段,异常引发后,可以调用很多不同的操作,可以是忽略错误,或是记录错误但不采取任何措施,采取补救措施后终止程序,或是江青问题的影响后设法继续执行程序

 类似Python这样支持引发和处理异常的语言,可以让开发人员在错误发生时不仅有检测错误的能力,还可以采取更可靠的补救措施。

 Python用异常对象(exception object)来表示异常情况,遇到错误后,引发的异常如果未被处理或捕捉,程序会自动调用回溯(Traceback)终止执行

>>> 1/0
Traceback (most recent call last):
  File "", line 1, in
ZeroDivisionError: integer division or modulo by zero
>>>

 

1. python中的异常

python解释器检测的异常如:

1) NameError: 尝试访问一个未声明的变量

2)ZeroDivisionError: 除数为零

3)SyntaxError:Python语法错误

4)IndexError: 请求的索引超出序列范围

5)KeyError:请求一个不存在的字典关键字

6)IOError: 输入/输出错误

7)AttirbuteError: 尝试访问未知的对象属性

8)TypeError:在内建操作或者函数 应用于错误类型的对象时引发

9)ValueError: 在内建操作或者函数 应用于正确类型的对象,但对该对象引用不合适的值引发

 

由程序员明确触发异常:

raise语句:raise [someException [,  args [, traceback]]]

 

 

2. 检测和处理异常

异常可以通过try语句来检测,主要有两种实现形式:try-except 和 try-finally

1) try-except 语句

定义了进行异常监控的一段代码,并提供了处理异常的机制

try:

    try_suite #进行监控的代码

except Exception[, reason]:

    except_suite #异常处理的代码

[except Exception2[, reson2]:

    except_suite2 # 处理try语句中可能发生的多种异常

[else:

    else_suite #try中语句执行没有异常被检测到

[finally:

    finally_suite #无论如何均会执行]]]

 

2) try-finally语句

finally方式的语句并不是用来捕捉异常,而是用来维持一致的行为而无论异常是否发生,无论try中是否有异常触发,finally代码段都会被执行

try:

    try:

        try_suite

    except:

        excetp_suite

finally:

    finally_suite

等效于:

try:

    try_suite

except:

    excetp_suite

finally:

    finally_suite

 

你可能感兴趣的:(exception,python,object,File,Integer,语言)