• 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子句可以同时处理多个异常,这些异常将被放在一个括号里成为一个元组

    1. import os
    2. #1
    3. try: #可比喻为警察
    4. os.mkdir('huan_huan') #可比喻成嫌疑人
    5. except FileExistsError: #出动警力
    6. print('抓捕归案,等待进一步处理') #抓捕归案
    7. #2
    8. try: #可比喻为警察
    9. os.mkdir('huan_huan') #可比喻成嫌疑人
    10. except OSError: #出动警力
    11. print('抓捕归案,等待进一步处理') #抓捕归案
    12. #备注:说明FileExistsError错误类型属于OSError
    13. #3
    14. try: #可比喻为警察
    15. os.mkdir('huan_huan') #可比喻成嫌疑人
    16. #有错就抓
    17. except Exception: #出动警力
    18. # except: # 出动警力
    19. print('抓捕归案,等待进一步处理') #抓捕归案
    1. import os
    2. try: #可比喻为警察
    3. os.mkdir('huan_huan') #可比喻成嫌疑人
    4. except (FileExistsError,OSError,NameError): #出动警力
    5. print('抓捕归案,等待进一步处理') #抓捕归案

    2.2.try/except...else

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

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

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

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

    另:

    close()方法的使用:

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

     2.3.try-finally 语句

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

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

  • 相关阅读:
    作为项目经理必须具备的能力
    MASA Framework 获取配置信息的方法
    数学建模:最优化问题及其求解概述
    Scala集合使用flatMap、map的优化及迭代器的原理
    (附源码)spring boot大学英语智慧教学平台 毕业设计 201722
    即时通讯软件
    短视频挺进在线音乐腹地
    paddlespeech 安装和测试教程
    『现学现忘』Git基础 — 10、配置Git用户签名说明
    【正点原子STM32连载】第三十七章 触摸屏实验 摘自【正点原子】MiniPro STM32H750 开发指南_V1.1
  • 原文地址:https://blog.csdn.net/weixin_47481102/article/details/126135598