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语句中出现的异常

相关文章
|
29天前
|
数据库连接 Python
Python中的异常处理除了Try语句,你还会啥?
Python中的异常处理除了Try语句,你还会啥?
37 1
|
19天前
|
Python
|
3月前
|
运维 监控 API
Python进行异常处理
【6月更文挑战第14天】 ```markdown # Python异常处理与日志记录最佳实践概览 - 异常处理:确保程序稳定,改善用户体验,简化调试。 - `try-except`用于捕获异常,`except`针对具体异常类型,`else`处理无异常情况,`finally`确保资源释放。 - 日志记录:追踪执行,辅助诊断,监控分析。 - `logging`模块用于记录不同级别的日志,如`info`、`warning`、`error`。
32 6
Python进行异常处理
|
3月前
|
Python
`try-except-finally`是Python异常处理的关键字,用于优雅地处理错误
【6月更文挑战第22天】`try-except-finally`是Python异常处理的关键字,用于优雅地处理错误。示例展示了函数`divide_numbers(a, b)`尝试执行`a/b`,若出现`ZeroDivisionError`,则捕获异常并打印错误信息,最后不论是否异常,都会显示"Division operation completed."。调用该函数分别展示正常除法和除零错误的处理情况。
37 2
|
3月前
|
Python
Python的异常处理通过`try-except`来实现,允许捕获和处理错误
【6月更文挑战第22天】Python的异常处理通过`try-except`来实现,允许捕获和处理错误。
75 1
|
3月前
|
数据库连接 数据库 索引
Python教程:一文了解Python的异常处理知识
在编程中,异常(exception)是指在程序执行过程中出现的错误或意外情况。当发生异常时,程序会中断执行,并将控制权转移到异常处理代码,以便对异常进行捕获和处理。
54 3
|
20天前
|
IDE 测试技术 开发工具
Python接口自动化测试框架(基础篇)-- 讨厌的异常处理
本文详细讨论了Python中的异常处理机制,包括异常捕获、异常抛出、自定义异常、环境清理,以及使用上下文管理器确保资源正确释放,最后还提到了Python的标准异常类。
14 1
|
30天前
|
开发者 Python
Python中的异常处理机制及其实践
【8月更文挑战第12天】Python的异常处理机制通过`try`和`except`结构显著提高了程序的稳定性和可靠性。在`try`块中执行可能引发异常的代码,如果发生异常,控制权将转移到与该异常类型匹配的`except`块。此外,还可以通过`else`处理无异常的情况,以及使用`finally`确保某些代码无论如何都会被执行,非常适合进行清理工作。这种机制允许开发者精确地捕捉和管理异常,从而提升程序的健壮性和可维护性。同时,Python还支持定义自定义异常,进一步增强了错误处理的灵活性。
38 4
|
1月前
|
监控 测试技术 数据库
Python自动化测试之异常处理机制
总体而言,妥善设计的异常处理策略让自动化测试更加稳定和可靠,同时也使得测试结果更加清晰、易于理解和维护。在设计自动化测试脚本时,务必考虑到异常处理机制的实现,以保证测试过程中遇到意外情况时的鲁棒性和信息的有效传达。
34 2
|
12天前
|
PHP 开发者 UED
PHP中的异常处理:从基础到高级探索Python中的列表推导式:简洁而强大的工具
【8月更文挑战第30天】在PHP编程的世界中,异常处理是确保代码健壮性和可靠性的关键机制。本文将引导您了解PHP异常处理的基本概念,并通过实际示例展示如何有效地捕获和处理异常。我们将一起探索try-catch结构、自定义异常类以及高级异常处理技术,让您的PHP代码更加稳固和易于维护。