当前第2页 返回上一页
出现异常时try-except-else-finally如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | try :
i = 1 / 0
print ( "没有出现异常i值" , i)
except Exception as e:
print ( "出现异常-->" , e)
else :
print ( "没有出现异常-->执行else" )
finally:
print ( "不管是否出现异常,这里的语句一定会被执行" )
# 输出结果
出现异常--> division by zero
不管是否出现异常,这里的语句一定会被执行
|
没有出现异常时try-except-else-finally如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | try :
i = 1 / 1
print ( "没有出现异常i值" , i)
except Exception as e:
print ( "出现异常-->" , e)
else :
print ( "没有出现异常-->执行else" )
finally:
print ( "不管是否出现异常,这里的语句一定会被执行" )
# 输出结果
没有出现异常i值 1.0
没有出现异常-->执行 else
不管是否出现异常,这里的语句一定会被执行
|
②、try-except-else-finally还可以拆开使用,有三种形式 1)try-except-finally 2)try-except-else 3)try-finally。 这里就不展示代码了
4、异常的传递
在发生异常的语句中没有处理异常的语句,异常将向上层传递,直到遇到处理异常的语句,或python解释器终止程序
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | def test2():
int( "aa" )
def test1():
test2()
try :
test1()
except Exception as e:
print (e)
print ( "-----------" )
# 输出结果
invalid literal for int() with base 10: 'aa'
-----------
|
如上test2中第2行出现异常,将向第5行调用test2的语句处传递,这里依旧没有异常处理语句,将继续往上层传递到第8行处被except捕获
5、抛出异常 raise
1)抛出python已定义的异常
通过raise 异常类型即可抛出一个异常,抛出的异常也会被except捕获到。如下边第4行
1 2 3 4 5 6 7 8 9 | age = 500
try :
if age < 0 or age > 200:
raise ValueError( "age范围0-200" )
print ( "age" , age)
except ValueError as e:
print ( "出现异常-->" , e)
# 输出结果
出现异常--> age范围0-200
|
2)抛出自定义异常
抛出自定义异常首先得有个自定义的异常类,注:自定义的异常必须直接或间接的继承Exception基类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | class MyException(Exception): # 自定义异常类
def __init__(self, msg):
self.msg = msg
age = 500
try :
if age < 0 or age > 200:
raise MyException( "age范围0-200" ) # 抛出自定义异常
print ( "age" , age)
except MyException as e:
print ( "出现异常-->" , e)
# 输出结果
出现异常--> age范围0-200
|
当然自定义异常类也可以拥有许多的功能,就得看需求添加啦
6、在异常处理中抛出异常
有某需求:当捕获到异常时处理完后想继续抛出异常.....
在except中用raise可以抛出当前异常
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | try :
i = 1 / 0 # 异常的语句
except Exception as e:
print ( "出现异常-->" , e)
raise # 处理完后继续抛出异常,raise表示抛出当前异常
print ( "-------------" )
# 输出结果
出现异常--> division by zero
Traceback (most recent call last):
File "<stdin>" , line 2, in <module>
i = 1 / 0
ZeroDivisionError: division by zero
|
以上就是python中异常有哪些?python中异常的详细介绍的详细内容,更多文章请关注木庄网络博客!!
返回前面的内容
相关阅读 >>
Python mysql数据库中pymysqlpool是如何使用的?
Python idle是什么
Python字典的用法详解(附示例)
Python如何将数字转化为字符串
学Python拿mac还是windows?
详解golang中switch语句和select语句的用法
为什么选择用Python做爬虫
Python属于什么类型的语言
Python3.6中如何安装pip
Python中累加怎么做
更多相关阅读请进入《Python》频道 >>
人民邮电出版社
python入门书籍,非常畅销,超高好评,python官方公认好书。
转载请注明出处:木庄网络博客 » python中异常有哪些?python中异常的详细介绍