由于在Python中,变量可以在其循环和try
-except
块之外访问,因此我天真地认为以下代码段可以正常工作,因为e
可以访问:
try:
int('s')
except ValueError as e:
pass
print(e)
在Python 2(经过2.7测试)中,它确实按我的预期工作,并且输出为:
invalid literal for int() with base 10: 's'
但是,在Python 3中,我惊讶于输出为:
NameError: name 'e' is not defined
为什么是这样?
我后来发现一个答案,因为PEP 3110解释了在Python
3中,捕获的名称在except
套件末尾被删除,以实现更有效的垃圾收集。如果您希望避免这种情况,还建议使用语法:
可以很容易地翻译出需要在except套件末尾附近保留异常实例的情况,就像这样
try: ... except E as N: ... ...
变成
try: ... except E as N: n = N ... …
这样,当在块的末尾删除N时,n将保留并可以正常使用。
export class SearchService { ... .map((response) => response.json()) .catch((e) => { if (e.status >== 500) { return cachedVersion(); new Error(`${ e.status
本文向大家介绍php中try catch捕获异常实例详解,包括了php中try catch捕获异常实例详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php中try catch捕获异常。分享给大家供大家参考。具体方法分析如下: php中try catch可以帮助我们捕获程序代码的异常了,这样我们可以很好的处理一些不必要的错误了,感兴趣的朋友可以一起来看看。 PHP中try{}catch
我正在尝试使用Quarkus构建一个小型REST服务。我正在使用Hibernate和PostgreSQL数据库。它在所有好的情况下都非常有效。但是当出现Hibernate异常时,比如,我无法以正常方式捕获它们。异常被包装为其他异常和。因此,可以通过使用 存储库 资源 由于这个问题,也无法为HibernateException添加一个。是否有人遇到过类似的问题,或者我的代码存在一般性问题?我正在使用
问题内容: 我想知道其他SOer在实践中如何倾向于处理和/或防止异常。 您在什么情况下可以防止例外情况,以及如何防止例外情况?在什么情况下您会捕获异常? 通常,我通常会说“ NullPointerExceptions”(和其他类似的事件) 我发现在大多数情况下,这比使用try-catch块所涉及的所有事情要小。 当潜在异常更复杂或数量更多时,我使用try-catch块。 问题答案: 我认为,仅当引
嘿StackOverflow社区, 关于抛出异常。一般什么时候抛出和异常,什么时候抓取? 假设我遇到了这样的情况,我不得不退出,因为发生了一些问题,我无法从它中恢复过来。我是投还是接? 我现在就这么做: 这样做对吗?如果我只是抛出异常会更合适吗?对不起,我是例外的新手:)
本文向大家介绍C# WinForm捕获未处理的异常实例解析,包括了C# WinForm捕获未处理的异常实例解析的使用技巧和注意事项,需要的朋友参考一下 本文以一个完整的实例形式讲述了C# WinForm捕获未处理的异常的方法。分享给大家供大家参考之用。具体代码如下: 本文实例配有较为详尽的注释,便于大家阅读理解。希望本文所述对大家的C#程序设计有所帮助。
本文向大家介绍Python用Try语句捕获异常的实例方法,包括了Python用Try语句捕获异常的实例方法的使用技巧和注意事项,需要的朋友参考一下 python的异常,以及用try复合语句处理异常。 运行代码时有时会出现各种各样的错误,致使解析器中断执行,并提示xxxxxxErorr的提示,后面跟具体的错误的描述,这被称为是引发了异常。 其实异常告诉我们的是遇到了什么类型的错误。xxxxErorr
问题内容: 如果我没记错的话,应该首先捕获Exception的子类。但是必须捕获任何RuntimeException和一个具体的经过检查的Exception,首先应该捕获它们吗? 这个命令正确吗?还是正确但错误的选择? 问题答案: 顺序是 先匹配的,然后执行 (正如JLS清楚地解释的)。 如果第一个catch匹配到异常,则执行,否则,将尝试下一个,并不断重复直到匹配或不匹配。 因此,在捕获异常时,