异常捕捉:
try:
XXXXX1
raise Exception(“xxxxx2”)
except (Exception1,Exception2,……):
xxxx3
else:
xxxxx4
finally:
xxxxxxx5
1.raise 语句可以自定义报错信息,如上。
2、raise之后的语句不会被执行,因为已经抛出异常,控制流会跳转到异常捕获模块。
3、except语句后面可以跟一个except有多个异常,也可以用多个语句捕获多个异常,分别处理。
4、如果except语句捕获的异常没有发生,则不执行except语句中的语句块。而是执行 else 中的语句
5、上面语句中try/except/else/finally出现的顺序必须是try->except X->except->else->finally,即所有的except都必须在else和finally之前,else(如果any) words) 必须在 finally 之前,并且 except X 必须在 except 之前。否则会出现语法错误。
6.else和finally都是可选的.
7、上述完整语句中,else语句的存在必须以except X或except语句为前提。如果在没有except语句的try块中使用else语句,会导致语法错误。
异常参数输出:
try:
testRaise()
except PreconditionsException as e: #python3的写法,必须用as
print (e)
自定义异常只需要自定义异常类继承父类Exception即可。在自定义异常类中,重写父类的init方法。
class DatabaseException(Exception):
def __init__(self,err='数据库错误'):
Exception.__init__(self,err)
class PreconditionsException(DatabaseException):
def __init__(self,err='PreconditionsErr'):
DatabaseException.__init__(self,err)
def testRaise():
raise PreconditionsException()
try:
testRaise()
except PreconditionsException as e:
print (e)
注意:PreconditonsException又是DatabaseException的子类。
所以如果,raise PreconditionException的话,用两个异常类都可以捕捉。
但是, 如果是raise DatabaseException, 用PreconditonsException是捕捉不到的。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在python中找到阶乘08/19
- ♥ python需要训练吗10/13
- ♥ python中的翻译功能翻译模块09/09
- ♥ python如何打印字符串09/11
- ♥ 如何走进Python之门?09/25
- ♥ 如何在 Python 递归函数中使用递归?01/02
内容反馈