Right now, MultiError.catch
and MultiError.filter
require that the callback they receive is synchronous. But it might happen at some point that someone wants to await
inside a callback, just like you can inside an except:
block or an __aenter__
method.
There are two reasons for this limitation: (1) the necessary chaining through to make the catch
and filter
code polymorphic with respect to async was pretty ugly, (2) bpo-29600 meant that async callbacks would always corrupt any exception they touched, which kinda ruined the whole thing.
However, bpo-29600 is fixed in mainline and the fix was backported to 3.6 and to 3.5. I believe the fix is in 3.6.1 (already released), and will also be in 3.5.4 (if and when that's released). And of course PyPy never had a problem with this.
So, it might be worth adding this feature back, though doing it in a maintainable way will still be tricky.
This isn't very urgent; I'm pretty sure no-one has yet run into a case where they actually need an async exception callback.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4