我想知道是否有办法捕获崩溃脚本的任何(和所有)类型的错误,但可能没有使用try
来捕获特定的异常。
我有一个webdriver脚本可以执行很多操作,例如点击链接,发送密钥等等,但我无法预测崩溃的位置。我想按顺序运行一系列测试并将结果打印到文件中 - 包括任何错误/崩溃: 例如
Test01 - Success!
Test02 - NameError: name 'driver' is not defined !ERROR!
Test03 - Success!
等等。
因此,最后我可以打开文本文件并检查需要修复哪些测试并重新运行。
现在我一直在使用try/exception
更小的代码块,但在我看来,我必须以某种方式将整个脚本包含在try/catch/exception
中以获得我想要的内容。
是否有更好的方法来捕获脚本崩溃后显示的任何类型的错误,如下图所示:
答案 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