异常处理机制

异常处理

先做这些步骤,如果发生错误就这样处理!

引进异常处理机制来解决程序运行的错误,而不是检查算法每一步是否成功;

Python用try...except...来进行异常处理:

     Try:
         <body1>  #先执行
     Except <ErrorType1> as reason:
         <body2>
     Except <ErrorType2> as reason:
         <body3>
     Except :
         <body3>

当python遇到一个try语句时,先执行try下body1的语句,没有错则执行try... Except...

后面的语句,有错的话,python在except下寻找一个符合错误的异常语句执行下面的代码。

例子1:
try:
    f =open('filetxt')
    print('文件内容是:')
    for i in f:
        print(i)
except OSError as reason:
    print("错误的原因是"+ str(reason))
>>>错误的原因是[Errno 2] No such file or directory: 'filetxt'
例子2:
while True:
    try: #用try...except用来捕捉valueerror错误
        x = int(input('输入数字:'))
        break
    except ValueError as error:
        print('输入错误,请重新输入' + str(error))

>>>输入数字:999
>>>输入数字:不是数字类型
输入错误,请重新输入

异常处理语句还可以使用elsefinally语句

 Try:

  <boby1>

Except 错误类型1:

  <处理方法>

Except 错误类型2:

  <处理方法2>

Except:    #主要用于处理程序正常执行过程中出现的异常如语法错误、数据处理错误、从未定义的变量错误等

  <处理方法3>

Else:         #必须在finally之前,什么时候执行呢?当try内没有异常产生才执行else下的语句

  <程序_else>

Finally:       #必须在这些语句后面,finally语句无论try是否发生异常,这些代码都必须执行,

  <程序_finally>#无论是否发生错误都必须执行,如清理工作场合,读一个文件无论是否有错最后还是要关闭文件

eg:
try: #监测到有异常下面的代码就不会执行,直接到对应的except语句
    #int('sadf')
    #sum = 1 + '1'
    f =open('file.txt','w')
    filess=f.write('asdsa')
    print('文件内容是:')
    for i in f:
        print(i)
except OSError as reason:
    print("错误的原因是:"+ str(reason))
except TypeError as error:
    print("错误的原因是:"+ str(error))
except (OSError,TypeError): # 这样写也行的!
    print("出错了!!")
except:  #当不确定是哪种异常直接这样就行!(可以这么做但不推荐)
    print('出错啦')
finally:#无论如何都会执行,一般用于文件操作。
filess.close()







评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值