Switch from wstring errors to stacktrace exceptions #11
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Throughout the code there were various try/catch instances that returned wstrings and showed those errors as messages. I don't like this approach, as it doesn't report much evidence to work with, such as where the error originated at or what all functions were executed to retrieve errors.
This is an attempt at making them provide more information by switching from wstring based errors (where possible) over to a stacktrace exception I found at https://sourceforge.net/projects/stacktrace/
By "Where possible", there is still an instance in bootstrapper.cpp which uses a wstring because
void try_loading
uses __try and doesn't allow unwinding, so that still throws wstrings, butvoid bootstrapper::load_local_implicit_params
now handles this by catching the wstring and throwing a stack_runtime_error from there.I have also yet to go through and replace the various non-trycatch-based error messages throughout the code, such as in main.cpp, etc, and I have yet to use/create more than just
stack_runtime_error
. I intend to do these things, but as of now, this is a quick address to help investigate #8 while I work on some other much needed stuff, such as an improved about window, changelog, version number plan, etc.