avoid pointless exception raising in dcutr/server
#1063
Merged
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.
dcutr/server
is the only protocol handler outside tests / examples that raises exceptions. The only caller of this handler is defined inMultStreamSelect.handle
, which has a surroundingexcept
block that catchesCatchableError
.When the handler raises a non-
CancelledError
the flow is:await protocolHolder.protocol.handler(conn, ms)
finally
block after itreturn
, both in successful and in exception caseexcept CatchableError as exc:
, it logs and discardsexc
finally
:await conn.close()
Stopped multistream handler
log, both in successful and exc case.By changing
dcutr/server
to only log but not also raise, difference is that the outerexcept CatchableError
in step (4) is skipped.As that is a redundant log anyway (
dcutr/server
already logs), it should be fine to not raise. That's in line with all the other protocol handlers (besides tests / examples) and opens up limiting{.raises.}
annotation for handlers to just[CancelledError]
.