异常机制

异常处理

为什么要异常:没有异常机制程序遇到错误会崩溃掉,不在往下运行,定义了异常,可以捕获到异常,并继续往下运行;python为每一种异常定制了一个类型,提供了一种独特的语法结构来进行异常处理

  1. 基本语法
try:
   被检测的代码块
except 捕捉异常类型:
  try中一旦检测到异常,就执行这个位置的逻辑
  1. 异常类只能处理指定的异常情况,如果非指定异常则无法处理
s1=hello
try:
  int(s1)
except IndexError as e:     #
  print(e)
  1. 多分支异常 (多个except)
try:
  被检测的代码块
except KeyError as e:  #捕捉key异常 赋予一个别名,方便打印
  print('===e')
except ValueError as e:  #捕捉值异常
  print('ValueError')
except IndexError as e: #捕捉index(下标)异常
  print(e)
  1. 万能异常(Exception),就是什么异常都能捕获到
while True:
    try:
        s = input('>>>')
        int(s)
        break
    except Exception as y:
        print('你输入的有误',y)

print('执行新的')

这时你可能想了,既然有万能异常,我统统就用这个万能不就好了嘛?嘿嘿,但是。。有两种情况,一种就是无论出现什么异常,我们不去管它,使用同一段代码逻辑去处理他们,这个时候就用万能异常就行,另一种情况,对于不同异常我们需要定制不同的处理逻辑,这个时候我们就需要用到多分支异常了,也可以在多分支异常后面加上万能异常。其实跟if,elif,else 差不多。

  1. 异常的其他执行机制
 try:
  被检测的代码块
except KeyError as e:  #捕捉key异常 赋予一个别名,方便打印
  print('===e')
except ValueError as e:  #捕捉值异常
  print(e)
except IndexError as e: #捕捉index(下标)异常
  print(e)
else: 
print('try内代码块没有异常则执行我')
finally:
print('不管有没有异常,我都会执行该模块,通常是进行清理工作')

异常的参考:

image.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容