-
Notifications
You must be signed in to change notification settings - Fork 20
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: refactor error to be more clear and maintainable #226
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PureWhiteWu
added
A-pilota
This issue concerns the main `pilota` crate.
A-pilota-build
This issue concerns the `pilota-build` crate.
labels
Feb 18, 2024
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
This comment was marked as resolved.
yukiiiteru
reviewed
Feb 19, 2024
yukiiiteru
reviewed
Feb 19, 2024
yukiiiteru
approved these changes
Feb 19, 2024
Millione
approved these changes
Feb 19, 2024
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
A-pilota
This issue concerns the main `pilota` crate.
A-pilota-build
This issue concerns the `pilota-build` crate.
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.
ApplicationError
from volo to pilota.XError
such asApplicationError
,ProtocolError
,TransportError
correspond to the exception concept in thrift rpc protocol, this pr renames those types toXException
.Error
type does not have a clear semantic, this pr renames it toThriftException
which is clearer in meaning.write_x
methods inrw_ext.rs
never returns error, so this PR removes theResult
type from function sig.TransportException
only comes fromstd::io::Error
and its kind is a subset ofstd::io::ErrorKind
, and separate a newTransportExceptionKind
fromstd::io::ErrorKind
does not make sense. So this pr deletes theTransportExceptionKind
and uses thestd::io::Error
directly.DecodeError
which is a mixture of some variants ofThriftException
, and the reason it exists is to add more information about the context of the error. But the implementation has some issues, such as we cannot easily get the root kind of error. The only thing we need to do is to prepend a message to the error, so this pr adds aprepend_msg
function toThriftException
and uses it as the codec error, which is far clearer and more maintainable.