ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

「Python入门」异常处理

2022-01-14 23:33:33  阅读:154  来源: 互联网

标签:入门 Python 捕获 except 处理 switch 异常 self


异常处理的基础概念

异常处理:对有可能发生的异常的预处理方案。

代码格式:

try:
    可能发生异常的代码块
except 异常类型:
    异常处理的代码块

捕获指定类型的异常

下面这种写法只能捕获except语句后面指定的异常类型:

如果发生其他类型的异常,是无法捕获的,程序依然会崩溃(和没有捕获异常一样):

捕获多种类型的异常

把要捕获的多种异常都写在except关键字后面:

捕获所有类型的异常

直接捕获所有类型的异常:

捕获异常并打印出异常的原因

else和finally

  • else:后面的内容只在没发生异常时执行;
  • finally:后面的内容不管有无异常都会执行(只要程序不崩溃)。

异常的传递

用户自定义的异常

异常对象必须有一个名字,且它们应是ErrorException类的子类。

异常处理中抛出异常

class Test(object):
    def __init__(self, switch):
        self.switch = switch #开关

    def calc(self, a, b):
        try:
            return a/b
        except Exception as result:
            if self.switch:
                print("捕获开启,已经捕获到了异常,信息如下:")
                print(result)
            else:
                # 重新抛出这个异常,此时就不会被这个异常处理给捕获到,从而触发默认的异常处理
                raise


a = Test(True)
a.calc(11,0)

print("----------------------华丽的分割线----------------")

a.switch = False
a.calc(11,0)

运行结果:

标签:入门,Python,捕获,except,处理,switch,异常,self
来源: https://www.cnblogs.com/zhanhong/p/15805836.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有