Wrap remote exceptions in Malt.RemoteException #57
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.
Fix #31
New type:
Example:
This also helps to normalize the exception behaviour of the three backends.
No original exception, only String
I decided to use a different API from Distributed. Distributed tries to serialize the original exception object and stacktrace, and it has a special error-failed-to-deserialize-flow for when this goes wrong (but then you don't see any info).
I think that this will occur too often with Malt use-cases (because Malt is for non-homogenous computing, so types are non shared), and I think a Maltonian program would write a specific try-catch handler on the worker end, and uncaught remote exceptions are only meant to be consumed by humans (so a string is fine).
So in Malt, we call
showerror
on the worker end to get the error message + stacktrace as aString
, and this is what is returned to the host. This means that the error will always be visible to the host.New behaviour
Of all three worker types: