Python异常处理--16

  • try:

把不确定会不会报错的代码,放在try里面

  • except

捕获到异常,进行处理,放在except下面

try:
    # 把不确定会不会报错的代码,方法try里面
    with open('ttt.txt','r') as f:
        f.read()
except:
    # 捕获到了异常
    print('打开的文件不存在')
    with open('ttt.txt','w') as f:
        pass
  • 捕获指定异常类型

try:
    print(a+'abc')
# except 后面可以写异常类型(指定只捕获这个类型的错误)
except TypeError as e: # 通过as可以接收捕获到的异常提示信息
    print('捕获到了类型异常')
    print(e) # 打印异常信息
except NameError:
    print('捕获变量没有定义的错误')
  • 使用多个except来捕获多种异常类型

通过一个except指定捕获多个异常类型
try:
    print(a+'abc')
# except 后面可以写异常类型(指定只捕获这个类型的错误)
except (TypeError,NameError,KeyError) as e:
    print('捕获到了类型异常')
    print(e)
  • 捕获所有类型的异常(语法错误除外)

try:
    print(a+'abc')
except Exception as e:
    print('捕获到了类型异常')
    print(e)
  • else:

try里面没有捕获到(发生)异常,那么就会执行else里面的代码

  • finally:

try里面的代码不管是是否发生异常都会执行

try:
    aa = 10000
    print(a+'abc')
except Exception as e:
    print('捕获到了类型异常')
    print(e)
else:
    # try里面没有捕获到(发生)异常,那么就会执行else里面的代码
    print('没有捕获带异常')
finally:
    # try里面的代码不管是是否发生异常都会执行
    print('finally----------------')
  • raise : 主动抛出异常

语法格式:raise 异常类型(异常信息)


  • assert:断言

assert后面跟一个条件语句,如果条件不成立就回触发断言异常(AssertError)

  • assert断言语句的预发格式:
    assert 表达式

  • debug调试

1、F7:往下走一步(遇到函数调用,会进入到函数内部)
2、F8:往下走一步(遇到函数调用,不会进入到函数内部,直接得出函数调用的结果)
注意:断点一定要打在能够执行到的那行代码上,代码执行不到断点白打

你可能感兴趣的:(Python异常处理--16)