python--异常处理

简介: python--异常处理

异常


lis = ['zouzou', 'jack', 'bob']
name = {'001': 'hello'}
try:
    print(lis[3])
    print(name['002'])
except KeyError as e:  # 将具体的错误信息赋值给e
    print('没有这个key:', e)
except IndexError as e:
    print('列表操作错误:', e)

结果

列表操作错误: list index out of range

出一个错就不往下执行了

也可以这样写

lis = ['zouzou', 'jack', 'bob']
name = {'001': 'hello'}
try:
    print(lis[3])
    print(name['002'])
except (KeyError, IndexError) as e:
    print('没有这个key:', e)


抓住所有错误


lis = ['zouzou', 'jack', 'bob']
name = {'001': 'hello'}
try:
    print(lis[3])
    print(name['002'])
except Exception as e:  # 基本上能抓住所有异常,缩进等 一些异常抓不了
    print('出错了,错误为:', e)

结果

出错了,错误为: list index out of range
lis = ['zouzou', 'jack', 'bob']
name = {'001': 'hello'}
try:
    open('test.txt')
except IndexError as e:
    print('列表错误:', e)
except KeyError as e:
    print('key错误:', e)
except Exception as e:  # 上面的错误都不是时执行这里的
    print('未知错误')

结果

未知错误


else在没有异常时执行


lis = ['zouzou', 'jack', 'bob']
name = {'001': 'hello'}
try:
    print(lis[0])
except IndexError as e:
    print('列表错误:', e)
except KeyError as e:
    print('key错误:', e)
except Exception as e:  # 上面的错误都不是时执行这里的
    print('未知错误', e)
else:
    print('一切正常')  # 没有异常时执行

结果:

zouzou
一切正常
lis = ['zouzou', 'jack', 'bob']
name = {'001': 'hello'}
try:
    print(lis[6])
except IndexError as e:
    print('列表错误:', e)
except KeyError as e:
    print('key错误:', e)
except Exception as e:  # 上面的错误都不是时执行这里的
    print('未知错误', e)
else:
    print('一切正常')  # 没有错误时执行
finally:
    print('不管有没有错都执行')  # 不管有没有错都执行,无论如何都会执行 操作系统资源归还的工作

结果

列表错误: list index out of range
不管有没有错都执行


自定义异常


class LfjException(Exception):  # 继承异常的基类
    def __init__(self, msg):
        self.message = msg
    def __str__(self):
        return self.message
try:
    raise LfjException('我的异常')
except LfjException as e:
    print(e)  # 打印的是self.message的值,self.message这 里的值是raise LfjException('我的异常'),括  号里的值

结果:

我的异常


raise主动抛异常


try:
    num = int(input('>>>'))
except Exception:
    print('在出现了异常之后做点儿什么,再让它抛异常')
    raise  # 原封不动的抛出try语句中出现的异常

相关文章
|
1月前
|
安全 Linux 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(一)
|
1月前
|
Python Windows 网络安全
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
Kali 渗透测试:基于结构化异常处理的渗透-使用Python编写渗透模块(二)
|
3月前
|
数据库连接 Python
Python中的异常处理除了Try语句,你还会啥?
Python中的异常处理除了Try语句,你还会啥?
63 1
|
3月前
|
Python
|
2月前
|
Python
Python编程中的异常处理:理解与实践
【9月更文挑战第14天】在编码的世界里,错误是不可避免的。它们就像路上的绊脚石,让我们的程序跌跌撞撞。但是,如果我们能够预见并优雅地处理这些错误,我们的程序就能像芭蕾舞者一样,即使在跌倒的边缘,也能轻盈地起舞。本文将带你深入了解Python中的异常处理机制,让你的代码在面对意外时,依然能保持优雅和从容。
156 73
|
1月前
|
安全 Java 程序员
Python 异常处理!
本文详细介绍了Python中的异常处理,包括try、except和finally语句的使用方法。文章区分了语法错误与异常,并列举了Python中常见的异常类型,如`SyntaxError`、`TypeError`等。通过具体示例展示了如何使用try-except块捕获和处理异常,以及如何结合else和finally子句增强代码的健壮性和可读性。此外,还介绍了如何使用raise语句主动抛出异常。通过合理的异常处理,可以提高程序的可靠性与调试效率,但也可能带来性能开销和代码复杂度的增加。
37 4
|
1月前
|
IDE 开发工具 开发者
Python中的异常处理与调试技巧
【9月更文挑战第32天】在软件开发中,错误和异常是难以避免的。了解如何有效处理这些情况对于编写健壮、可靠的代码至关重要。本文将深入探讨Python中的异常处理机制,介绍如何使用try-except语句捕捉异常,以及如何利用Python的调试工具来诊断问题。通过实际示例,我们将展示如何优雅地处理异常并提高代码质量。
|
2月前
|
对象存储 索引 Python
30天拿下Python之异常处理
30天拿下Python之异常处理
31 3
|
1月前
|
安全 数据库连接 开发者
深度解析Python上下文管理器:优雅资源管理与异常处理
深度解析Python上下文管理器:优雅资源管理与异常处理
20 0
|
3月前
|
IDE 测试技术 开发工具
Python接口自动化测试框架(基础篇)-- 讨厌的异常处理
本文详细讨论了Python中的异常处理机制,包括异常捕获、异常抛出、自定义异常、环境清理,以及使用上下文管理器确保资源正确释放,最后还提到了Python的标准异常类。
37 1