D22_3.1_了解异常

#####了解异常#####
# IndexError 索引超出序列的范围
# KeyError 字典中查找一个不存在的关键字
# NameError 尝试访问一个不存在的变量
# IndentationError 缩进错误
# AttributeError 尝试访问未知的对象属性
# StopIteration 迭代器没有更多的值
# AssertionError 断言语句(assert)失败, assert 5>3 #对,不报错;assert 5<2 #错,报错

# ### 异常处理
try:
  code1
except:
  code2

把可能存在问题的代码放到try这个代码块之后,
如果出现异常直接执行except这个代码块里面内容
如果没有异常,就不走except

# 2.带有分支的异常处理
try:
  dic = {"a":1}
  print(dic["b"])

#except后可以跟系统错误类型名,若是这种错误类型,则执行这条语句
except IndexError:
  print("我是IndexError错误类")
except KeyError:
  print("我是KeyError错误类")
except:
  print("有异常错误")

# 4.关于异常处理的扩展写法

# try ... finally 如果有报错,报错让你报,不管有没有错finally中的代码块都要执行
# try ... except ... else 如果不报错就走else分支,报错了就不执行else,不执行except, finally 和 else 不能够同时存在
# for/while ... else ... (了解) 如果循环异常终止(break,或者在函数中通过return终止的),不走else分支

猜你喜欢

转载自www.cnblogs.com/banbosuiyue/p/11832493.html
3.1