异常处理

异常处理

一、异常简介

[1]什么是异常

  • 异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行
  • 一般情况下,在Python无法正常处理程序时就会发生一个异常

[2]异常的分类

  • 异常有很多分类,下图知识图中一部分

二、异常的捕获语法

[1]一般的日常捕获语法

  • try : except:
try:
    可能发生异常的语句
except (Exception as e):
	print(e) # except 后如果不加东西也可以,仅仅只捕获异常
    		 # 这样写可以打印出异常原因

(1)仅仅捕获异常不让它干扰程序

try:
    print("1" + 1)
except:
    print("出错了!")

(2)捕获所有异常

try:
    print("1" + 1)
except Exception as e:
    print(e) # 打印出异常原因 
  #can only concatenate str (not "int") to str

(3)捕获指定异常

try:
    print("1" + 1)
except TypeError as e:  
    print(e) # 打印出异常原因   
#can only concatenate str (not "int") to str

[2]异常分支语句

  • 异常处理中除了必须的关机字tryexcept,还有elsefinally

    #else  如果没有发生异常就会执行else的语句
    try:
        print(1 + 1)
    except Exception as e:
        print(e)
        print("出错了!")
    else:
        #没出错时会执行下面的代码
        print("没出错!")
        
    # finally 不管怎么样都要执行finally下的语句    
    try:
        print("1" + 1)
    except Exception as e:
        print(e)
        print("出错了!")
    else:
        print("没出错!")
    finally:
        print("异常处理结束!")    
    
    

[3]主动触发异常

  • 使用raise来自动触发异常、

    try:
        print(1 + 2)
        raise TypeError("数字2属于字符串类型!!!")
    except Exception as e:
        print(e) 
    '''
    	3
    	数字2属于字符串类型!!!
    '''
    

[4]自定义异常

class MyException(BaseException):
    def __init__(self, args):
        print(f'MyException :>>>>  {args}')

    # def __new__(cls, *args, **kwargs):
    #     print(f'这是 MyException抛出的异常 ')


try:
    raise MyException('这是自己的异常')
except Exception as e:
    print(f"这是错误 {e}")

三、断言

[1]断言的介绍

  • assert(断言)用于判断一个表达式,在表达式条件为 false 的时候触发异常
  • 断言可以在条件不满足程序运行的情况下直接返回错误,而不必等待程序运行后出现崩溃的情况

[2]断言的使用

name = "Xanadu"
assert name == "bridge", "名字只能是Xanadu"
'''
	AssertionError: 名字只能是Xanadu
'''
posted @   桃源氏  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示