exceptions and no traceback

Ever since I upgraded to 1.6.2 I have noticed that any exception or error found within a task does not give the traceback any more. All it says is:

:task(error): Exception occurred in PythonTask PlayerUpdate

Now PlayerUpdate is rather big and actually contains about 50 functions, and I could swear it was working yesterday. I could manually check every line for an error but this is long…Is there a way to get the traceback back?

(and yes, this is a huge project with 100+ files and lots and lots of classes all subclassed, and runs only networked across at least 2 processes…There’s got to be a way to get the traceback…)

Hmm, it should give a traceback. Has anyone else seen this behavior?

David

Works fine for me:

from direct.directbase import DirectStart
def blah(task):
  raise ValueError
taskMgr.add(blah, "blah")
run()

I’ve tried different kinds of exceptions, including custom ones, but they all print tracebacks.

I suggest trying to isolate the error.

I did some more testing, and found that it was the editor! Any exception within a task that causes a task error for whatever reason within notepad++ kills the traceback. This particular case was a missing function because of inadequate imports. All of my other editors installed (spe,boa constructor, geanie, conText, and running it from the command line) work as expected.

This being the case, does anyone know why notepad++ would have different results and is there a way to fix it as this is by far my favorite.

One workaround might be to put:
extended-exceptions 1
in your Config.prc file. This will activate a highly verbose, built-in traceback mechanism within the Task Manager itself. Then it won’t really matter if your editor is squelching exceptions.

David

no, it is only killing exceptions within the task (whenever task::error shows up or any other __::error…it seems random as it has not done this in the past. That did seem to fix it though.

Maybe it is time to move on to another editor :cry: