1. 捕捉异常使用try/except语句,try语句包含可能出错的代码,except语句捕获异常信息并处理。
下面介绍一个简单的例子。自定义一个异常类NameNotFound。异常应该是典型的继承自Execption类,通过直接或间接的方式。
#coding:utf-8
#test1.py
import sys
class NameNotFound(Exception):
def __init__(self):
print("No execption")
pass
def test(x):
if x==0:
raise NameNotFound
print("test")
try:
test(0)
except NameNotFound:
print NameNotFound.message
#sys.exit(1)
pass
执行上述代码,python test1.py 结果如下:
No execption
<attribute 'message' of 'exceptions.BaseException' objects>
会看到抛出异常NameNotFound时,后面的打印test没执行。
使用raise抛出异常,一旦执行了raise语句,raise后面的语句将不能执行。
获取python执行结果的返回值,使用echo $? 文件名
例如:echo $? test1.py 会打印出 0 test1.py
如果想修改返回值,将代码中注释的sys.exit(1) 放开,在执行代码,python test1.py
再次获取返回值echo $? test1.py 会打印出 1 test1.py
2. 使用except而不带任何异常类型
try:
正常的操作
......................
except:
发生异常,执行这块代码
......................
else:
如果没有异常执行这块代码
3. 使用except而带多种异常类型
try:
正常的操作
......................
except(Exception1[, Exception2[,...ExceptionN]]]):
发生以上多个异常中的一个,执行这块代码
......................
else:
如果没有异常执行这块代码
4.try-finally语句
try-finally语句无论是否发生异常都将执行finally语句
try:
正常的操作
......................
finally:
总是执行
try:
正常的操作
......................
except:
发生异常,执行这块代码
......................
finally:
总是执行