python中的空错误消息

avo*_*rum 9 python exception

我正在尝试调试错误,当我最初运行它时,我得到了"无异常提供",然后放入try/except块以打印出错误.

try:
    #some code
except BaseException, e:
    print str(e)
Run Code Online (Sandbox Code Playgroud)

这产生了一个空白的输出线,任何想法可能是什么?

编辑:抱歉,希望有一个特定的原因,错误消息可能是空白.没有堆栈跟踪输出,这导致我被迫首先尝试try/except块,我仍在编程这个东西所以我只是让'编译器'抓住错误.抛出错误的实际代码是在Django应用程序中,因此它将具有Django的一些功能.

try:
    if len(request.POST['dateToRun']) <= 0:
        dateToRun = Job.objects.filter(id=jobIDs[i]).values()['whenToRun'].split(' ')[0]
    if len(request.POST['timeToRun']) <= 0:
        timeToRun = Job.objects.filter(id=jobIDs[i]).values()['whenToRun'].split(' ')[1]
except BaseException, e:
    print str(e)
Run Code Online (Sandbox Code Playgroud)

这是视图函数中的代码.jobIDs是包含值## Selection:##(即17Selection:17)格式的值键对的dict.对不起,我忘了发帖.

编辑:repr(e)给了我TypeError(),这比不知道任何东西更好.

Mar*_*ers 12

这意味着该异常没有附加消息.打印例外类型:

print repr(e)
Run Code Online (Sandbox Code Playgroud)

您可能还想打印回溯:

import traceback

# ...
except BaseException as e:
    traceback.print_exc()
Run Code Online (Sandbox Code Playgroud)

但是你想要避免捕捉BaseException,这并不比一揽子except:声明好.相反,捕获更具体的例外.


And*_*ark 6

以下产生一个空行输出:

try:
    raise Exception()
except BaseException, e:
    print str(e)
Run Code Online (Sandbox Code Playgroud)

repr(e)看的异常是什么长大.