草庐IT

Try-finally

全部标签

python - 我可以从 python 中的 finally block 中获取异常吗?

我的脚本中有一个try/finally子句。是否可以从finally子句中得到准确的错误信息? 最佳答案 没有,在finally的时候sys.exc_info是all-None,是否有异常或不。使用:try:whateverexcept:heresys.exc_infoisvalidtore-raisetheexception,useabare`raise`else:hereyouknowtherewasnoexceptionfinally:andhereyoucandoexception-independentfinalizati

python - 我可以从 python 中的 finally block 中获取异常吗?

我的脚本中有一个try/finally子句。是否可以从finally子句中得到准确的错误信息? 最佳答案 没有,在finally的时候sys.exc_info是all-None,是否有异常或不。使用:try:whateverexcept:heresys.exc_infoisvalidtore-raisetheexception,useabare`raise`else:hereyouknowtherewasnoexceptionfinally:andhereyoucandoexception-independentfinalizati

python - 如何在不使用 try/catch 的情况下测试 Python Enum 中是否存在 int 值?

使用PythonEnum类,有没有办法在不使用try/catch的情况下测试Enum是否包含特定的int值?使用以下类:fromenumimportEnumclassFruit(Enum):Apple=4Orange=5Pear=6如何测试值6(返回true)或值7(返回false)? 最佳答案 测试值变体1请注意,Enum有一个名为_value2member_map_的成员(未记录在案,可能会在未来的python版本中更改/删除):print(Fruit._value2member_map_)#{4:,5:,6:}您可以针对此映射

python - 如何在不使用 try/catch 的情况下测试 Python Enum 中是否存在 int 值?

使用PythonEnum类,有没有办法在不使用try/catch的情况下测试Enum是否包含特定的int值?使用以下类:fromenumimportEnumclassFruit(Enum):Apple=4Orange=5Pear=6如何测试值6(返回true)或值7(返回false)? 最佳答案 测试值变体1请注意,Enum有一个名为_value2member_map_的成员(未记录在案,可能会在未来的python版本中更改/删除):print(Fruit._value2member_map_)#{4:,5:,6:}您可以针对此映射

python 3 try-除了所有错误

这个问题在这里已经有了答案:HowtogetexceptionmessageinPythonproperly(5个回答)关闭5年前。是否可以在不捕获所有可能异常的情况下执行try-except捕获仍然显示错误的所有内容?我有一个案例,在24/7运行的脚本中,每隔几天就会发生一次异常。我不能让脚本死掉,但它们也无关紧要,因为只要我尝试除所有内容外,它都会重试。因此,当我追踪任何最后的罕见异常时,我想将它们记录到文件中以供将来调试。示例:try:print(555)except:print("typeerror:"+str(the_error))有什么方法可以将the_error替换为堆栈

python 3 try-除了所有错误

这个问题在这里已经有了答案:HowtogetexceptionmessageinPythonproperly(5个回答)关闭5年前。是否可以在不捕获所有可能异常的情况下执行try-except捕获仍然显示错误的所有内容?我有一个案例,在24/7运行的脚本中,每隔几天就会发生一次异常。我不能让脚本死掉,但它们也无关紧要,因为只要我尝试除所有内容外,它都会重试。因此,当我追踪任何最后的罕见异常时,我想将它们记录到文件中以供将来调试。示例:try:print(555)except:print("typeerror:"+str(the_error))有什么方法可以将the_error替换为堆栈

python - 为什么在 Python 的 `continue` 子句中不允许 `finally`?

以下代码引发语法错误:>>>foriinrange(10):...printi...try:...pass...finally:...continue...printi...File"",line6SyntaxError:'continue'notsupportedinside'finally'clause为什么finally子句中不允许使用continue语句?附:另一方面,其他代码没有问题:>>>foriinrange(10):...printi...try:...pass...finally:...break...0如果重要的话,我使用的是Python2.6.6。

python - 为什么在 Python 的 `continue` 子句中不允许 `finally`?

以下代码引发语法错误:>>>foriinrange(10):...printi...try:...pass...finally:...continue...printi...File"",line6SyntaxError:'continue'notsupportedinside'finally'clause为什么finally子句中不允许使用continue语句?附:另一方面,其他代码没有问题:>>>foriinrange(10):...printi...try:...pass...finally:...break...0如果重要的话,我使用的是Python2.6.6。

啊,似乎没有真正理解 try...catch...finally!

![配图源自Freepik](https://upload-images.jianshu.io/upload_images/5128488-8d67c27213a10cb8.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)写了那么久的JavaScript,似乎真的没有很认真地去了解`try...catch...finally`的各种用法,真是惭愧了!Anyway,不懂就学...##一、错误与异常错误,在程序中是很常见的。它可以是JS引擎在执行代码时内部抛出的,也可以是代码开发人员针对一些不合法的输入而主动抛出的,或者是网络断开连接

python - "with"如何比 try/catch 在 Python 中打开文件更好?

我知道with语句可以帮助您转这个:try:f=open(my_file)do_stuff_that_fails()except:passfinally:f.close()进入:withopen(my_file)asf:do_stuff_that_fails()但是这样更好吗?您仍然必须处理无法打开文件的情况(例如提示用户告诉他他没有权限),因此实际上您将拥有:try:withopen(my_file)asf:do_stuff_that_fails()except(IOError,OSError,Failure)ase:do_stuff_when_it_doesnt_work()相当于