For unhandled exceptions, I have also my own little package: https://github.com/albertz/py_better_exchook
I sometimes also wrap this like:
try:
# Sth which might throw whatever,
# but we could still proceed afterwards with reasonable
# fallback logic, or just skip this.
...
except Exception:
print("Warning: XY failed...")
# print stack trace, but then proceed
sys.excepthook(*sys.exc_info())It's not just PyCharm. A debugger can be set up in many other development environments, but it seems some people refuse to use a debugger. I've seen this more in the PHP community, where people swear that they'll never use a debugger and say there's no need to learn because putting `var_dump` everywhere is better.
For sure, packages like these have their places, but if you're using it for debugging, you're doing software development wrong.
I still try to fire up the PyCharm debugger sometimes, but setting up the environment usually proves too hard.
Helps so much when trying to track down random unhandled promise rejection / async errors that don't always execute linearly with the rest of the program flow.
Custom protocols are generally an okayish glue between the browser and other apps, e.g. you can add notes to Org-mode or call other Emacs functions. And the protocols also work from other apps, of course—like Alfred.
I wrote a log function for debugging which does something similar for my own projects, but this is even easier to implement, and provides superior output.