python 异常处理

1. try……except

a = dict(name = 'wang')
b = [1,2,3]
try:                # 尝试着执行try里面的代码
    print(a)
    print(a['age'])
    print(b[100])
except (NameError,) as e:  # 遇到NameError的错误,则抛出(可以将多个错误写在一行,用括号括起来,逗号隔开)
    print(e)
except KeyError as e:     # keyError
    print('key_error',e)
except Exception as e:    # 所有能抛出的异常都可以抛出
    print('未知错误。')
else:
    print('没有错误,才执行此句。可以省略')
finally:
    print('总会执行此句。可以省略')

2. 自定义异常

# 自定义 异常
class NumError(Exception):    # 创建一个异常类,继承自Exception
    def __init__(self,info):
        super().__init__(self)   # 继承父类的方法
        self.info = info
    def __str__(self):       # __str__方法,打印对象即可直接打印返回值
        return self.info

num = [1,2,3,4,5]
try:
    if len(num)<100:
        raise NumError('Length Error')  # 通过raise主动抛出异常
except NumError as e:
    print(e)
posted @   wztshine  阅读(136)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示