python中处理多个异常

简介: python中处理多个异常

知识回顾



自定义异常:

1.自定义类

2.学会继承,继承Exception

3.自定义异常的构造函数

4.手动抛出异常使用raise


一、处理多个异常



1.把所有的异常进行明细化,确定异常条件,直接处理已知的异常,分别进行处理。

这种情况下就是多次使用except这个关键词来处理异常。


2.统一处理所有异常,把多个已知的异常归类到一起处理。

我们把多个明确的异常归类到一起,用同一种方式来进行处理。我们把多个异常写到同一个except中用小括号括起来,中间的异常用逗号隔开。

except(MyCustomerException1,MyCustomerException2):

   print("这里处理异常1和异常2的结果")


3.处理其它未知的异常。

处理未知异常的技巧就是在except后面不要加某一种异常情况,此时默认会处理所有的未知异常。


二、案例:做多个异常处理的案例



1.自定义多个异常

2.根据实际情况,来调用自定义的几个异常

3.处理异常


三、捕获异常取别名



在try…except语句中的except语句后面实际的异常,如果类名太长,我们可以取别名。格式 except 类常类名 as 别名

except MyCustomerException1 as mce1:


四、总结强调



1.掌握所有异常情况的情况方法try。。。Except

2.掌握自定义异常的处理方法

3.掌握异常的明细化处理

4.掌握自定义异常的构造函数的信息传入和输出

5.掌握使用同一个except处理多个异常


本节知识源代码;

#第一个自定义异常
class MyCustomerException1(Exception):
    def __init__(self,code=100,desc="异常消息:100"):
        self.code=code
        self.desc=desc
#自定义第二个异常
class MyCustomerException2(Exception):
    pass
a=input("请输出一个值:")
# try:
#     if a=="qqq":
#         raise MyCustomerException1
#     elif a=="123":
#         raise MyCustomerException2("这里异常为2")
#     else:
#         b=a/0
# except MyCustomerException1 as mce1:
#     print("这里触发了第一个异常",mce1.code,mce1.desc)
# except MyCustomerException2:
#     print("这里触发了第二个异常")
# except:
#     print("这里处理未知异常")
try:
    if a=="qqq":
        raise MyCustomerException1
    elif a=="123":
        raise MyCustomerException2("这里异常为2")
    else:
        b=a/0
except(MyCustomerException1,MyCustomerException2):
    print("这里处理异常1和异常2的结果")
except:
    print("未知异常")
相关文章
|
4月前
|
Python
Python基础教程(第3版)中文版 第8章 异常(笔记)
Python基础教程(第3版)中文版 第8章 异常(笔记)
|
3月前
|
Unix API Python
【Python】已完美解决:(Python3.8异常)AttributeError: module ‘time‘ has no attribute ‘clock‘
【Python】已完美解决:(Python3.8异常)AttributeError: module ‘time‘ has no attribute ‘clock‘
61 0
|
3天前
|
人工智能 数据可视化 搜索推荐
Python异常模块与包
Python异常模块与包
|
5月前
|
索引 Python
Python中的异常处理与自定义异常
Python中的异常处理与自定义异常
48 0
|
3月前
|
数据采集 存储 Java
如何让Python爬虫在遇到异常时继续运行
构建健壮Python爬虫涉及异常处理、代理IP和多线程。通过try/except捕获异常,保证程序在遇到问题时能继续运行。使用代理IP(如亿牛云)防止被目标网站封锁,多线程提升抓取效率。示例代码展示了如何配置代理,设置User-Agent,以及使用SQLite存储数据。通过`fetch_url`函数和`ThreadPoolExecutor`实现抓取与重试机制。
如何让Python爬虫在遇到异常时继续运行
|
2月前
|
API C++ Python
【Azure 应用服务】Python fastapi Function在Azure中遇见AttributeError异常(AttributeError: 'AsgiMiddleware' object has no attribute 'handle_async')
【Azure 应用服务】Python fastapi Function在Azure中遇见AttributeError异常(AttributeError: 'AsgiMiddleware' object has no attribute 'handle_async')
|
3月前
|
机器学习/深度学习 运维 监控
使用Python实现深度学习模型:智能安防监控与异常检测
【7月更文挑战第26天】 使用Python实现深度学习模型:智能安防监控与异常检测
51 6
|
2月前
|
存储 Python
Python 中的用户定义异常
【8月更文挑战第23天】
21 0
|
2月前
|
前端开发 JavaScript Java
Python错误、异常和模块
本文详细介绍了Python编程中的错误和异常处理以及模块的使用方法。语法错误如遗漏引号会导致`SyntaxError`,而运行时错误如除以零则会产生`ZeroDivisionError`等异常。文章通过实例展示了如何使用`try...except`结构来捕获并处理异常,确保程序的健壮性。此外,还介绍了如何自定义异常以及主动抛出异常的方法。在模块方面,文章解释了如何创建和导入模块以重用代码,并展示了不同导入方式的特点,包括导入单个函数、全部内容等。最后提到了Python标准库的使用和查询模块内容的方法。
|
3月前
|
机器学习/深度学习 数据采集 算法
Python实现Prophet时间序列数据建模与异常值检测(Prophet算法)项目实战
Python实现Prophet时间序列数据建模与异常值检测(Prophet算法)项目实战
179 2
下一篇
无影云桌面