-
-
Notifications
You must be signed in to change notification settings - Fork 392
Description
Unfortunately, MultiErrors aren't very nice to work with right now.
They don't print backtraces for the individual exceptions. (And unfortunately python doesn't make this particularly easy.) I'm sure we can do better than we are though.
A relatively common pattern is to want to catch a particular exception, or allow particular exceptions through (e.g., this comes up in trio._core._run quite a bit!), or transform particular exceptions, which requires "slicing" a MultiError. Right now we're doing this by hand when we need to, but it's obviously something that would be better handled by some utility functions with the right abstraction. (And there are places where we aren't handling it right, like system_task_wrapper – see #50.)
Unfortunately I'm not entirely sure what this looks like. Maybe it will become clearer as we work with these things more.