I think the language that gets Exceptions right is Common Lisp because of the restarts. With other languages handling exceptions is complicated. You either need to know internals of the code you are using or you simply bail out and print and error. With restarts you can simply offer ways to fix it and keep the logic where it belongs, close to the "throw".