@@ -859,23 +859,23 @@ to be updated.
859
859
## Reference Implementation
860
860
861
861
We developed these concepts (and the examples for this PEP) with
862
- [ an experimental implementation] ( https://github.com/iritkatriel/cpython/tree/exceptionGroup-stage5 ) .
862
+ the help of [ a reference implementation] ( https://github.com/iritkatriel/cpython/tree/exceptionGroup-stage5 ) .
863
863
864
864
It has the builtin ` ExceptionGroup ` along with the changes to the traceback
865
- formatting code, in addition to the grammar and interpreter changes required
866
- to support ` except* ` .
865
+ formatting code, in addition to the grammar, compiler and interpreter changes
866
+ required to support ` except* ` .
867
867
868
868
Two opcodes were added: one implements the exception type match check via
869
869
` ExceptionGroup.split() ` , and the other is used at the end of a ` try-except `
870
870
construct to merge all unhandled, raised and reraised exceptions (if any).
871
871
The raised/reraised exceptions are collected in a list on the runtime stack.
872
872
For this purpose, the body of each ` except* ` clause is wrapped in a traditional
873
873
` try-except ` which captures any exceptions raised. Both raised and reraised
874
- exceptions are collected in one list. When the time comes to merge them into
875
- a result, the raised and reraised exceptions are distinguished by comparing
874
+ exceptions are collected in the same list. When the time comes to merge them
875
+ into a result, the raised and reraised exceptions are distinguished by comparing
876
876
their metadata fields (context, cause, traceback) with those of the originally
877
877
raised exception. As mentioned above, the reraised exceptions have the same
878
- metadata as the original, while raised ones do not.
878
+ metadata as the original, while the raised ones do not.
879
879
880
880
## Rejected Ideas
881
881
0 commit comments