python打开串口怎么异常处理_Python学习之异常处理

1.首先了解错误和异常的概念:

错误:代码运行前的代码错误或者是程序执行过程中的逻辑错误

1:语法错误:代码不符合解释器或者编译器语法(代码错误)

2:逻辑错误:不完整或者不合法输入或者计算出现问题(输入时或者计算时,比如除零操作等)

异常:执行过程中出现问题导致程序无法继续执行

1:程序遇到逻辑或者算法问题(代码错误导致程序无法正确的执行)

2:运行过程中计算机错误(内存不够或者IO错误)(硬件环境出现问题)

2.错误和异常的区别:

错误中的语法错误会在解释器或编译发现的,但是逻辑错误是无法通过解释其或编译器来预判的,而在程序执行的过程中,如果出现错误,编译器或解释器检查到错误就认为是异常,则会抛出异常;而异常的处理有截获、忽略、终止程序,一般如果我们没有人为的对异常进行截获的话,异常就会终止程序的运行

3.Python常见的错误:

1、NameError 变量没定义就使用

2、SyntaxError 语法错误

3、IOError 打开一个不存在的目录或文件

4.ZeroDivisionError 10/0 除数为0了 逻辑错误

5.a=int('dd') :ValueError 传入值无效

6.KeyboardInterrupt 强制终止程序产生,比如按下Ctrl+C

7.IndentionError:缩进问题

4.工作原理

1.首先执行try中的语句

2.如果没有发生异常,则忽略except,执行完try的语句

3.如果发生ic行,那么会暂时或略try中发生异常后的语句,如果发生异常的类型与except后的名称相符,则执行except后的语句,然后再执行try中未执行的语句。

4.如果发生异常,但无任何except匹配,、那么这个异常就会往上传递给上层的try,直到找不到就会停止程序的执行。

5.常用的几种方式:

1.try .... finally

try:pass

finally:#如果没有捕获到异常,该代码库执行

#如果捕获到异常,先执行这个,再给解释器处理异常

#总之,如何都要执行这里面的语句

2.try ... except ... finally

try:pass

except:#异常处理

finally:#必须要做的事

#1)如果没有捕获到异常,执行完try后就执行finally#2)如果捕获到异常,try=》except=》try中未执行完的语句=》finally#3)else与finally的区别是,else是没有捕获到异常时才执行的,而finally是不管怎样都会执行的

3.try .... except ... else

try:pass

except:#异常处理

else:#未捕获到异常时要执行的语句

traceback相关:

python中用于处理异常栈的模块是traceback模块,它提供了print_exception、format_exception等输出异常栈等常用的工具函数。

其实traceback.print_exc()函数只是traceback.print_exception()函数的一个简写形式,traceback.format_exc()函数是traceback.format_exception()的一个简写形式。而它们获取异常相关的数据都是通过sys.exc_info()函数得到的。

sys.exc_info()返回的值是一个元组,分别是,exc_type是异常的对象类型,exc_value是异常的值,exc_tb是一个traceback对象,对象中包含出错的行数、位置等数据。然后通过print_exception函数对这些异常数据进行整理输出

deffunc(a, b):return a /bif __name__ == '__main__':importsysimporttracebacktry:

func(1, 0)exceptException as e:print "print_exception()"exc_type, exc_value, exc_tb=sys.exc_info()print 'the exc type is:', exc_typeprint 'the exc value is:', exc_valueprint 'the exc tb is:', exc_tb

traceback.print_exception(exc_type, exc_value, exc_tb)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值