python - 异常处理
1,异常和错误1,程序中难免出现错误,而错误分成两种1,语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) <span style="color: #008000;"># <span style="color: #008000;">语法错误示范二<span style="color: #0000ff;">def<span style="color: #000000;"> test: <span style="color: #0000ff;">pass <span style="color: #008000;">#<span style="color: #008000;">语法错误示范三 2,逻辑错误
num=input(>: <span style="color: #008000;">#<span style="color: #008000;">无法完成计算
res1=1/<span style="color: #000000;">0 res2=1+<span style="color: #800000;">'<span style="color: #800000;">str<span style="color: #800000;">' 2,什么是异常异常就是程序运行时发生错误的信号,在python中,错误触发的异常如下 3,python中的异常种类在python中不同的异常可以用不同的类型(python中统一了类与类型,类型即类) 去标识,不同的类对象标识不同的异常,一个异常标识一种错误. l = [,3]
dic = {:]
s =
<div class="cnblogs_code" onclick="cnblogs_code_show('75205d5a-0cbe-45ed-8247-cb7278c24d59')"> /5+
2,异常处理1,try/except 子句在 Python 中, 在?
= int(input(( %(结果一:
Please ener the salary: 10000<span style="color: #000000;"> So happy 10000<span style="color: #000000;"> 结果二: 这里,Python 将尝试处理? 注意 :? 2,捕获特定异常一个? 来看一段伪代码: <span style="color: #0000ff;">except <span style="color: #000000;"> ValueError:<span style="color: #008000;">#<span style="color: #008000;"> 处理 ValueError 异常 <span style="color: #0000ff;">pass <span style="color: #0000ff;">except<span style="color: #000000;"> (TypeError,ZeroDivisionError): <span style="color: #0000ff;">except<span style="color: #000000;">: 通过使用元组,可以为except子句指定多个异常. 3,else 子句?通常,如果不发生异常,我们往往会希望执行一些额外的代码,这可以通过? 上述示例,我们将? = int(input((( % salaey)
也就是说, 4,finally 子句另外, 例如,操作一个文件: = open(,encoding=
一旦使用,无论文件是否打开成功,都必须清理资源。所以,在? 5,使用异常对象异常对象包含的信息不仅仅是错误类型,也有一些其他信息. 要访问这些信息,需要能够访问异常对象,可以将其分配给一个变量,然后在? = int(input(运行结果:
Please enter the salary:abc invalid literal <span style="color: #0000ff;">for int() with base 10: <span style="color: #800000;">'<span style="color: #800000;">abc<span style="color: #800000;">' 注意:? 通常,这些异常信息不是很方便用户 - 如果想向用户报告错误,一般需要编写一个更具描述性的消息(说明错误与用户的某些行为相关)。这时,可以将异常消息与自己的消息相结合: = int(input(( %运行:
Please enter the salary: abc You entered incorrect salary: invalid literal <span style="color: #0000ff;">for int() with base 10: <span style="color: #800000;">'<span style="color: #800000;">abc<span style="color: #800000;">' 注意:?使用? 6,抛出异常在 Python 中,当发生运行时错误,就会出现相应的异常。此外,也可以使用关键字? 还可以选择为异常传递值,以说明为什么会引发异常: = int(input( salary <= ValueError( %( %( %运行:
Please enter the salary: -10000<span style="color: #000000;"> You entered incorrect salary: -10000 <span style="color: #0000ff;">is <span style="color: #0000ff;">not a valid age,salary must be positive. 薪资肯定是一个正整数,当输入一个负数或 0 时,我们可以抛出自己的? 注意:?之所以选择? 当这样做时,它与任何其他异常具有完全相同的效果 - 控制流将立即退出? ?也还可以自定义异常: EvaException(BaseException):
= EvaException((err)
断言: <span style="color: #0000ff;">assert 1 == 1<span style="color: #0000ff;">assert 1 == 2try..except的方式比较if的方式的好处try..except这种异常处理机制就是取代if那种方式,让你的程序在不牺牲可读性的前提下增强健壮性和容错性 异常处理中为每一个异常定制了异常类型(python中统一了类与类型,类型即类),对于同一种异常,一个except就可以捕捉到,可以同时处理多段代码的异常(无需‘写多个if判断式’)减少了代码,增强了可读性? 使用try..except的方式 1:把错误处理和真正的工作分开来2:代码更易组织,更清晰,复杂的工作任务更容易实现;3:毫无疑问,更安全了,不至于由于一些小的疏忽而使程序意外崩溃了; 注 :? try...except应该尽量少用,因为它本身就是你附加给你的程序的一种异常处理的逻辑,与你的主要的工作是没有关系的这种东西加的多了,会导致你的代码可读性变差,只有在有些异常无法预知的情况下,才应该加上try...except,其他的逻辑错误应该尽量修正 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |