Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让Try输出更多细节?为了显示它到底发生在哪里python_Python - Fatal编程技术网

如何让Try输出更多细节?为了显示它到底发生在哪里python

如何让Try输出更多细节?为了显示它到底发生在哪里python,python,Python,如果我们输入 10/0 它将输出:(这里的问题---使用Try-Except时所需的输出) 它只输出: division by zero 在使用Try-Except时,如何让python像第一种情况那样输出整个错误?如果您想继续引发错误(这最终将导致退出程序并打印堆栈跟踪),可以将引发放在Except的主体中: try: 10/0 except Exception as e: print(e) raise 如果要打印堆栈跟踪但不引发异常,请参阅回溯模块:而不是使用基

如果我们输入

10/0
它将输出:(这里的问题---使用Try-Except时所需的输出)

它只输出:

division by zero

在使用Try-Except时,如何让python像第一种情况那样输出整个错误?

如果您想继续引发错误(这最终将导致退出程序并打印堆栈跟踪),可以将
引发
放在
Except
的主体中:

try:
    10/0
except Exception as e:
    print(e)
    raise

如果要打印堆栈跟踪但不引发异常,请参阅
回溯
模块:

而不是使用基本的
print()
功能,可以使用更灵活的日志记录模块来记录异常。日志模块提供了很多额外的功能,例如,将消息记录到给定的日志文件中,使用时间戳记录消息,以及记录发生位置的其他信息

试试这个:

import logging

try:
    1/0
except Exception as e:
    logging.exception(e)

请参见

如何将其输入日志?我在一台云计算机上运行这个程序,一个选择是让程序的调用者捕获它的stderr。如果您希望程序本身捕获堆栈跟踪,请使用顶级异常处理程序,该处理程序使用
回溯
模块从未捕获的异常中提取堆栈信息,然后将其打印到日志文件中。哦,您的意思是像try:10/0一样,但异常为e:logger。异常(e)是,但不要把它放在<代码> 10/0 <代码>上,你可以考虑把它放在顶层<代码>主< /代码>函数中,这样你就不必把它放在每个可能引发异常的地方。这就是异常的巨大威力——因为它们不断地向调用方引发异常,直到被捕获为止,所以您可以使用一条
try/except
语句在整个程序中实现异常日志记录!我的回答对你有帮助吗?这正是我想要的
try:
    10/0
except Exception as e:
    print(e)
    raise
import logging

try:
    1/0
except Exception as e:
    logging.exception(e)