我正在编写一个程序来解析10个网站,查找数据文件,保存文件,然后解析它们以生成可以在NumPy库中使用的数据.有吨的错误该文件通过遇到不良链接,不好的XML,缺项,其他的事情我还没有进行分类.我最初制作这个程序来处理这样的错误:
try:
do_stuff()
except:
pass
Run Code Online (Sandbox Code Playgroud)
但现在我想记录错误:
try:
do_stuff()
except Exception, err:
print Exception, err
Run Code Online (Sandbox Code Playgroud)
请注意,这是打印到日志文件以供以后查看.这通常会打印非常无用的数据.我想要的是打印错误触发时打印的完全相同的行,没有try-except拦截异常,但我不希望它暂停我的程序,因为它嵌套在一系列for循环中,我想看完成了.
我不知道为什么我们需要finally在try...except...finally声明中.在我看来,这个代码块
try:
run_code1()
except TypeError:
run_code2()
other_code()
Run Code Online (Sandbox Code Playgroud)
与使用finally以下内容相同:
try:
run_code1()
except TypeError:
run_code2()
finally:
other_code()
Run Code Online (Sandbox Code Playgroud)
我错过了什么吗?
我有一个主程序调用的函数:
try:
someFunction()
except:
print "exception happened!"
Run Code Online (Sandbox Code Playgroud)
但是在函数执行过程中它会引发异常,因此会跳转到该except部分.
我怎样才能确切地看到发生了什么someFunction()导致异常发生?
现在,我在except Exception:条款中捕获了异常,并且做了print(exception).结果不提供任何信息,因为它始终打印<class 'Exception'>.我知道这曾经在python 2中工作,但我如何在python3中做到这一点?
我想要某种形式的东西
try:
# code
except *, error_message:
print(error_message)
Run Code Online (Sandbox Code Playgroud)
即我想要一个通用的 except 块来捕获所有类型的异常并打印错误消息。例如。“ZeroDivisionError:除以零”。在Python中可以吗?
如果我执行以下操作,我可以捕获所有异常,但不会收到错误消息。
try:
# code
except:
print("Exception occurred")
Run Code Online (Sandbox Code Playgroud) 如何打印python异常?
例:
try:
action()
except:
print "Unexpected error:", sys.exc_info()[0]
Run Code Online (Sandbox Code Playgroud)
印刷品:
Unexpected error: <type 'exceptions.TypeError'>
它对我来说没有太多信息。