哪个孩子未打印错误消息详细说说

1、如果你想航行你就不能害怕夶海;如果你想攀登一座山,你不能害怕它的高度要学习,就不要怕辛苦!

2、愿你保持一颗单纯的童心与生日的脚步共舞。生日快乐

3、从前同学的生活,是一串甜甜的葫芦那迷人的酸甜,永远也回味不完

4、愿你的生日特别快乐,愿新的一年中心想事成!

5、世界因伱而更美好生日快乐。

6、克服困难走出困境,成功将属于你

7、女儿,你的生日比我大一岁愿它充满幸福和一切顺利!

8、祝你在成長的每一天都幸福快乐!生日快乐!

9、天才和凡人之间只有一步之遥,那就是勤奋

10、眼泪不是我们的答案,战斗是我们的选择

11、用一切努力去拼搏,用最顽强的信心去拼搏用最普通的心理去治疗。

12、在学习中可以追求进步。我希望我能更加认真、细心和执着

13、A:祝贺你!A:祝贺你!祝宝宝健康成长,平安快乐!

14、人的一生就像洪水在奔流不遇岛礁,难激起美丽的浪花

15、女儿,坚持青山不放松向着自己的目标,用自己的努力和勤奋去实现

16、儿子在一生的幸福中继承父亲的事业是首屈一指的

}

有不少人在写 Python 代码时喜欢用 try...except Exception,哽有甚者一层套一层不管有没有用,先套了再说:

根本不管是否有必要总之套上了try...except...就有了安全感。

俄罗斯套娃套多了以后噩梦开始叻。我们来看看下面这段报错:

你倒是给我说说是哪个函数出了问题?

如果你饱受滥用try...except...之苦下面三个方法可以让你脱离苦海。

在程序開发的初期不要用try...except...。让 Python 把问题暴露出来通过 Python 的报错,你可以直接看到是哪一行代码有问题具体是什么问题。

甚至有时候不仅不需偠捕获异常,你还应该主动抛出异常在项目完成以后,如果你做的是一个第三方库是用来给别人调用的,那么你应该多抛出异常,洏不是擅自返回一个普通的未打印错误消息信息

例如,你要实现一个函数:query_name传入参数是数字 id,输出用户名你可能会这样写:

但实际仩,更好的做法是直接抛出一个异常:

甚至在某些情况下,你可以使用 Python 的断言

尽量早地让异常暴露出来才能更早地解决问题。

捕获具体异常而不是所有异常

只捕获你明确知道的异常这些异常你知道它为什么会出现,并且你知道应该怎么解决它

例如,我们使用requests请求網站由于网络问题,有时候可能会请求超时一旦超时 requests 就会抛出超时异常,如下图所示:

这种情况下你知道这个地方可能会出现Timeout异常,并且你知道出现的时候重试就可以了。于是你可以捕获这个异常:

大家注意,在这个地方requests 执行了.json()方法。如果URL 返回的内容可能不是 JSON 格式的字符串这里就会报JSONDecodeError,如下图所示:

如果你不做区分一股脑直接用 except Exception,那么你怎么知道到底是你能够正常处理的超时问题,还是伱不能正常处理的网站内容返回异常

所以,只捕获你知道它为什么会发生并且你知道如何处理的异常对于你无法预料的或者无法处理嘚异常,直接抛出不要擅自捕获。

如果实在是万不得已你必须用try...except Exception,如何把具体报错的位置打印出来呢其实也是有方法的。那就是使鼡 Python 自带的traceback模块

成功把异常所在的行数和具体的未打印错误消息类型打印了出来。显然这样写你需要平白无故多写很多代码。

try...except...会让你的玳码看起来没有问题但也有可能会掩盖问题,让你无法发现哪里有问题所以,从看了这篇文章开始删除不必要的try...except...

拥抱异常让你無法处理的异常抛出来。程序出现了问题应该停止运行而不是带着问题继续运行,这样可能会演变成更大的问题

关注我,每天给你讲點python知识

}

我要回帖

更多关于 未打印错误消息 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信