python异常和错误的区别_python:错误、异常

1、错误

语法错误:代码不符合解释器或者编译器语法,例如 缩进字符、循环语句的冒号

逻辑错误:不完整或不合法输入、算法问题,比如0作除数

2、异常

程序遇到逻辑或者算法问题

运行过程中计算机错误(内存不够或IO错误)

这两个或抛出异常,如果没有手动对其进行处理,那么此异常就会被解释器捕获,处理的方法

为忽略或者终止程序

3、错误和异常的区别

错误是代码运行前

错误是非正常的,不应该出现的,比如:缩进、循环语句的冒号

异常是由错误产生的

异常是代码运行时产生的 ,解释器检测到错误你并且认为是异常,抛出异常

如果不捕获处理可能会终止程序

我们可以在代码中主动捕获异常并处理

4、异常处理

4.1 try...except 语句捕获异常

1510318-20200522164811198-730995463.png

try...except的工作原理:

except子句可以有多个,处理不同的特定异常,但是except最多只有一个被执行。

一个except子句处理多个异常时,将这些异常放在一个括号中形成一个元组。例如:

except(xxxError,yyyError,dddError):pass

最后一个except子句可以忽略异常名称,此时的 : 将被当做通配符使用。可以使用这种方法打印一个错误信息,然后再次把异常抛出

except:print("Unexpected error:", sys.exc_info())raise

1)首先,执行try子句,关键字try和关键字except之间的语句

2)如果没有异常发生,忽略except子句,try子句执行完后,结束

3)如果在执行try子句的过程中发生了异常,那么try子句余下的部分将被忽略。

4)如果发生的异常类型和except之后的名称相符,那么对应的except子句就会被执行

5)如果发生的异常没有一个与except 类型相符,那么这个异常将传递给上层的try中

4.2 try...except ...else捕获处理异常

1510318-20200522173818127-1413706300.png

else子句可选,如果有else子句,那么必须放在所有的except子句之后。else子句将在try子句没有发生任何异常的时候执行。

4.3 try...finally 语句

语句无论是否发生异常都将执行最后的代码。

1510318-20200522213045167-1561577823.png

5、主动触发异常

raise语句 触发异常

触发一个错误,让程序进入异常状态

语法:

raise异常类型

raise异常对象

6、assert语句

断言语句

assert真值表达式,错误数据(通常是字符串)

当真值表达式为False时,用错误数据创建一个AssertionError类型错误,并进入异常状态

等同于 :

if真值表达式==False:

raiseAssertionError(错误数据)

loading.gif

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值