Nitpick: this is something that's all over Theano and annoys me relentlessly. The Python docs state that most exceptions should take a single, nicely formatted error string as their only argument. The multiple arguments thing gives you a haphazardly rendered tuple instead, and isn't useful at all. For debugging you can just drop into pdb and have access to the relevant state in the scope of the `raise`, and In the rare case where you want to bubble extra information up to an except clause somewhere you should just create the exception and explicitly assign a named attribute so that the calling code doesn't have opaque references like `exc.args[2]`.