Python try/except: 显示变量后展示错误原因

50 投票
7 回答
108432 浏览
提问于 2025-04-16 09:12

我甚至不知道该用什么正确的词来搜索。我想在一个异常处理块中显示错误对象的部分内容(类似于VBScript中的err对象,它有Err.Number和Err.Description)。比如,我想先显示我的变量值,然后再显示具体的错误。很明显,我下面的代码造成了一个除以零的错误,但我该怎么打印出这个错误呢?

try: 
    x = 0 
    y = 1 
    z = y / x 
    z = z + 1 
    print "z=%d" % (z) 
except: 
    print "Values at Exception: x=%d y=%d " % (x,y) 
    print "The error was on line ..." 
    print "The reason for the error was ..." 

7 个回答

13

异常对象的字符串值会告诉你出错的原因。traceback模块可以让你查看完整的错误追踪信息。

30

如果你预料到会出现“除以零”的错误,你可以专门处理这个错误。

import traceback
try:
  x = 5
  y = 0
  print x/y
except ZeroDivisionError:
  print "Error Dividing %d/%d" % (x,y)
  traceback.print_exc()
except:
  print "A non-ZeroDivisionError occurred"

你可以通过调用 traceback.print_exc() 来手动获取出错的行号和其他信息。

112

在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这些问题可能是因为我们写的代码有bug,或者使用的工具和库不兼容。解决这些问题通常需要我们仔细检查代码,看看哪里出了问题。

另外,很多时候我们可以在网上找到别人遇到类似问题的解决方案,比如在StackOverflow这样的论坛上。这里有很多程序员分享他们的经验和解决办法,大家可以互相帮助。

总之,编程过程中遇到问题是很正常的,关键是要学会如何寻找解决方案,并不断提升自己的技能。

try:  
    1 / 0 
except Exception as e: 
    print(e)

撰写回答