Python:捕获错误+打印到文件

时间:2016-06-30 14:21:11

标签: python error-handling

我想知道是否有办法捕获崩溃脚本的任何(和所有)类型的错误,但可能没有使用try来捕获特定的异常。

我有一个webdriver脚本可以执行很多操作,例如点击链接,发送密钥等等,但我无法预测崩溃的位置。我想按顺序运行一系列测试并将结果打印到文件中 - 包括任何错误/崩溃: 例如

Test01 - Success!   
Test02 - NameError: name 'driver' is not defined !ERROR!
Test03 - Success!

等等。

因此,最后我可以打开文本文件并检查需要修复哪些测试并重新运行。

现在我一直在使用try/exception更小的代码块,但在我看来,我必须以某种方式将整个脚本包含在try/catch/exception中以获得我想要的内容。

是否有更好的方法来捕获脚本崩溃后显示的任何类型的错误,如下图所示:

enter image description here

2 个答案:

答案 0 :(得分:1)

您可以使用普通except来捕获任何和所有异常,例如:

try:
    some code here
except:
    print 'whoops, something went wrong'

但是,这并没有提供有关异常的任何信息,因此您可能不希望这样做。

你也可以捕捉到非常广泛的Exception,如下所示:

try:
    some code here
except Exception as ex:
    print 'oops, caught this error: %s' % ex

这是一种更好的方法,因为它告诉你到底出了什么问题。

答案 1 :(得分:0)

您正在寻找的技巧似乎是将stderr重定向到文件或标准输出。

Python有异常时会将异常写入stderr。 只需要将stderr重定向到运行python程序时的相同输出文件

像这样

  

python file.py&> OUTPUTFILE