Base.windowserror function to encapsulate Windows errors in SystemErrors #30613
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.
While working on #30611, I noticed a need for a function like
systemerror
but for Windows errors that useGetLastError()
instead oferrno
, in order to:Libc.FormatMessage
) until the error is actually displayed (if ever).SystemError
exception type, so that the exception type is consistent across platforms. (The fact that it is a Windows exception is stored in theextrainfo
field.)Along the way, I found and fixed a bunch of apparent bugs — functions that were calling
systemerror
after Windows API calls that don't seterrno
. (These would have thrown aSystemError
exception witherrorshow
function that confusingly prints "no error" or similar as the error message.)The resulting
Base.windowserror
function is not exported.