为什么 Python 中的' except ”子句被认为是不好的做法?
裸“例外”的危险
在使用 PyAutoGui 设计一个函数来验证屏幕上图像是否存在时,您采用了以下方法:
1 2 3 4 5 6 |
|
虽然此函数看起来按预期运行,但 PyCharm 将裸露的“例外”标记为不可取。这引起了人们对不加修饰的“例外”的影响的担忧。
裸“例外”的问题
裸露“例外”不加区别地拦截所有异常,甚至是那些未预期或理想的。诸如 KeyboardInterrupt (Ctrl C) 之类的异常和诸如 SystemExit 之类的 Python 生成的错误都不应该以这种方式处理。
最好显式指定代码准备处理的异常类型,至少是“异常”,所有“常规”异常的基础类。
更合适的方法
错误“例外”块旨在用于从预定义的故障场景中恢复。然而,通常不可能从未知的故障场景中完全恢复。在这种情况下,最好终止程序而不是尝试继续。这是 Python 解释器在未处理异常时的默认行为。
仅捕获您知道如何解决的异常是明智的做法。应允许剩余的异常在调用堆栈中向上传播,希望另一个组件可以处理它们。在验证图像存在的情况下,预期错误(根据文档)是 pyautogui.ImageNotFoundException。
修订的代码
根据上述见解,可以重构您的函数以解决提出的问题通过裸露的“例外”:
1 2 3 4 5 6 |
|
通过指定函数要处理的特定异常,您可以改进代码的可靠性和可维护性。
以上是为什么 Python 中的' except ”子句被认为是不好的做法?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

Linux终端中查看Python版本时遇到权限问题的解决方法当你在Linux终端中尝试查看Python的版本时,输入python...

使用FiddlerEverywhere进行中间人读取时如何避免被检测到当你使用FiddlerEverywhere...

在使用Python的pandas库时,如何在两个结构不同的DataFrame之间进行整列复制是一个常见的问题。假设我们有两个Dat...

Uvicorn是如何持续监听HTTP请求的?Uvicorn是一个基于ASGI的轻量级Web服务器,其核心功能之一便是监听HTTP请求并进�...

如何在10小时内教计算机小白编程基础?如果你只有10个小时来教计算机小白一些编程知识,你会选择教些什么�...

攻克Investing.com的反爬虫策略许多人尝试爬取Investing.com(https://cn.investing.com/news/latest-news)的新闻数据时,常常�...
