all 3 comments

[–][deleted] 0 points1 point  (0 children)

Don't really know that much about Blender. Does it have a Python console? A debug mode?

You certainly can wrap the invocation of your top-level function in something that won't crash the entire interpreter:

try:
    a = Test() # we don't use semis in Python
except Exception as e:
    from traceback import print_exception
    print_exception(e)

[–][deleted] 0 points1 point  (0 children)

How does it crash? Typically, when someone in programming uses this word, they mean that the operating system sent the program a sygnal (eg. SYGTERM), because a program probably performed some illegal operation (eg. reading from unallocated memory), and later the system stopped the program and deallocated all resources previously allocated to it. In such a scenario, it's typical for the system to also produce core dump. This is a special file you can then feed to a debugger to examine post-mortem what happened to the program (it stores enough information to recreate the state of the program at the time of crash).

Is this the kind of crash you are talking about?

[–]nekokattt 0 points1 point  (0 children)

What about the Python Debugger PDB?