019python-异常处理的基本使用

异常:在运行代码构成中遇到的任何错误,带有error字样的,都是异常

异常处理:对代码中所有出现的异常进行处理

1.疑问:为什么要进行异常处理?

python用异常对象(exception object)来表示异常情况,遇到错误后,会引发异常,如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行。

  • 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。
  • 一般情况下,在Python无法正常处理程序时就会发生一个异常。
  • 异常是Python对象,表示一个错误。
  • 当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。

2.异常处理

2.1.try/except

异常捕捉可以使用 try/except 语句。

 (初级的异常处理:抓 1.处理某个错误 2.处理某种类型的错误 3.有错就抓)

try 语句按照如下方式工作;

  • 首先,执行 try 子句(在关键字 try 和关键字 except 之间的语句)。

  • 如果没有异常发生,忽略 except 子句,try 子句执行后结束。

  • 如果在执行 try 子句的过程中发生了异常,那么 try 子句余下的部分将被忽略。如果异常的类型和 except 之后的名称相符,那么对应的 except 子句将被执行。

  • 如果一个异常没有与任何的 except 匹配,那么这个异常将会传递给上层的 try 中。

一个 try 语句可能包含多个except子句,分别来处理不同的特定的异常。最多只有一个分支会被执行。

处理程序将只针对对应的 try 子句中的异常进行处理,而不是其他的 try 的处理程序中的异常。

一个except子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组

import os

#1
try:     #可比喻为警察
    os.mkdir('huan_huan')    #可比喻成嫌疑人
except FileExistsError:   #出动警力
    print('抓捕归案,等待进一步处理')     #抓捕归案

#2
try:     #可比喻为警察
    os.mkdir('huan_huan')    #可比喻成嫌疑人
except OSError:   #出动警力
    print('抓捕归案,等待进一步处理')     #抓捕归案

#备注:说明FileExistsError错误类型属于OSError

#3
try:     #可比喻为警察
    os.mkdir('huan_huan')    #可比喻成嫌疑人
#有错就抓
except Exception:   #出动警力
# except:  # 出动警力
    print('抓捕归案,等待进一步处理')     #抓捕归案
import os

try:     #可比喻为警察
    os.mkdir('huan_huan')    #可比喻成嫌疑人
except (FileExistsError,OSError,NameError):   #出动警力
    print('抓捕归案,等待进一步处理')     #抓捕归案

2.2.try/except...else

(真正的异常处理:既要抓,还要有处罚措施)

try/except 语句还有一个可选的 else 子句,如果使用这个子句,那么必须放在所有的 except 子句之后。

else 子句将在 try 子句没有发生任何异常的时候执行。

import os

try:     #可比喻为警察
    os.mkdir('huan_huan')    #可比喻成嫌疑人
#有错就抓
except Exception as e:   #报错误抓起来,存储到变量C里面去
# except:  # 出动警力
    print('抓捕归案,等待进一步处理')     #抓捕归案
    print('犯的错误是:{0}'.format(e))
    #将错误记起来,新建文件
    # a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写
    file=open('error.text','a+',encoding='utf-8')
    file.write(str(e))
    # close() 方法用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发 ValueError 错误。 close() 方法允许调用多次。
    file.close()     #关闭文件
else:     #跟try下面的的代码是一起的,有错不运行else后面的代码
    print('测试缓缓')

另:

close()方法的使用:

File close() 方法
概述
close() 方法用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发 ValueError 错误。 close() 方法允许调用多次。
当 file 对象,被引用到操作另外一个文件时,Python 会自动关闭之前的 file 对象。 使用 close() 方法关闭文件是一个好的习惯。
语法
close() 方法语法如下:
fileObject.close();
参数
无
返回值
该方法没有返回值。

 2.3.try-finally 语句

try-finally 语句无论是否发生异常都将执行最后的代码。

import os

try:     #可比喻为警察
    os.mkdir('huan_huan')    #可比喻成嫌疑人
#有错就抓
except Exception as e:   #报错误抓起来,存储到变量C里面去
# except:  # 出动警力
    print('抓捕归案,等待进一步处理')     #抓捕归案
    print('犯的错误是:{0}'.format(e))
    #将错误记起来,新建文件
    # a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写
    file=open('error.text','a+',encoding='utf-8')
    file.write(str(e))
    # close() 方法用于关闭一个已打开的文件。关闭后的文件不能再进行读写操作, 否则会触发 ValueError 错误。 close() 方法允许调用多次。
    file.close()     #关闭文件
finally:     #不管有没有错,都要执行
    print('测试缓缓')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值