Closed bobjervis closed 8 years ago
Ironically, when I wrote a test, it turns out I needed to get 'throw' working before I could really test the other stuff. So, I got throw working well enough to get things going. The exception tables are correct for my test case and the code created the Exception object, called down into the C++ runtime and did the stack walk.
It found the correct handler and dispatched to it. Too bad the code generator gave it the wrong address and ended up restarting the program (now dubbed 'Groundhog Day').
Stack walking is working well enough to get thrown exceptions caught by the 'unhandled exception' handler.
Thrown exception leak the memory used to hold the exception and also do not dispatch correctly if there are specific exceptions to be caught.
There are still some memory leak issues around destructors getting scheduled and the introduction of appropriate finally blocks (under the hood), but that work should be tracked under other issues as bugs.
Complete implementation of try / catch