15.python异常处理
Posted Learning
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了15.python异常处理相关的知识,希望对你有一定的参考价值。
异常:程序运行时报错
关于异常处理:
程序员编订特定编码,用来捕捉异常,这段代码与与程序逻辑没有关系,只和异常处理相关。捕捉成功则进入另一处理分支,执行为其定制的逻辑,使程序不会发生崩溃
1.使用if判断式:
num1=input(‘>>: ‘) #输入一个字符串试试 if num1.isdigit(): int(num1) #我们的正统程序放到了这里,其余的都属于异常处理范畴 elif num1.isspace(): print(‘输入的是空格,就执行我这里的逻辑‘) elif len(num1) == 0: print(‘输入的是空,就执行我这里的逻辑‘) else: print(‘其他情情况,执行我这里的逻辑‘)
总结:
if判断式的异常处理只能针对某一段代码,对于不同代码段的相同类型还需要重复if进行处理
频繁使用if会导致程序本身可读性变差
if是能解决异常的只是存在上述问题
2.选用py特定语法:
1.基本语法
try: 被检测的代码块 except 异常类型: try中一旦检测到异常,就执行这个位置的逻辑
2.异常只能处理指定的异常情况,如果非指定异常则无法处理
# 未捕获到异常,程序直接报错 s1 = ‘hello‘ try: int(s1) except IndexError as e: print(e)
3.万能异常:Exception可以捕获任意异常
s1 = ‘hello‘ try: int(s1) except Exception as e: print(e) ---invalid literal for int() with base 10: ‘hello‘ # 它不会飘红,但是也会显示相关错误
如果相对任何异常都统一丢弃,那么一个Exception就足够了
如果想要对不同的异常定制不同的处理逻辑,则需要多分支处理
s1 = ‘hello‘ try: float(s1) except IndexError as e: print(e) except KeyError as e: print(e) except ValueError as e: print(e)
4.其他组织机构
s1 = ‘hello‘ try: int(s1) except IndexError as e: print(e) except KeyError as e: print(e) except ValueError as e: print(e) #except Exception as e: # print(e) else: print(‘try内代码块没有异常则执行我‘) finally: print(‘无论异常与否,都会执行该模块,通常是进行清理工作‘) # 这步不管怎样最后都会执行
5.主动触发异常
try: raise TypeError(‘类型错误‘) except Exception as e: print(e)
以上是关于15.python异常处理的主要内容,如果未能解决你的问题,请参考以下文章
PCL异常处理:pcl 1.8.13rdpartyoostincludeoost-1_64oost ypeofmsvc ypeof_impl.hpp(125): error(代码片段