-
Notifications
You must be signed in to change notification settings - Fork 112
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
Error messaging context #422
Comments
Hey @bradhanks 👋
These are generally not very useful contributions, as usually there is a reason why we went with aliases vs full names. It's subjective anyways so hard to find a definitive best option 😉 As for context in errors, you're welcome to propose a concrete non-breaking API to add context, I'd love to see how that looks like. |
One idea would be to delegate wrap_error/1 to /2 with an empty map and %{file: ENV.file, as a second argument. Then delegate format_error/1 and format_reason/1 to /2 and include the context in the message. |
%{
file: __ENV__.file,
fun: __ENV__.function,
line: __ENV__.line
} I don't see how this ☝️ is going to help. You'd need to dig into Mint's source code to understand why a connection was |
Seconding what @whatyouhide said. I think we can add additional context to determine the reason for a closed connection but I don't think adding source location metadata is the right way to do it. A good error message should not require reading the source code to understand it. It also cannot be used to programmatically make decisions based on the error reason. I would rather add fields to |
That makes a lot of sense. I think I had myself in mind as I was working through the different pathways. :) I plan on going through it some more this week. |
A tuple could be seen as a breaking change though, so let's see if we can go with an additional field in the exception first 🙃 |
open to any guidance and very much appreciated. |
I'm curious if it would be useful to add context to current error reasons.
For example, :closed in HTTP/2, specifying whether it was due to a connection state check or an unexpected closure during data transmission. I'm just reading through the code bc it's a foundational package and had that thought.
Also wondering if PR edits are welcome on stuff like inconsistent use of alias vs. full module name. Obviously not a big deal but I'm going through it so I thought I might as well ask if it's useful.
The text was updated successfully, but these errors were encountered: