-
Notifications
You must be signed in to change notification settings - Fork 304
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
Proposal: An Error class which has an inner error. #533
Comments
I'm personally on the fence about this one. I see the value, but struggle to see if it's really worth putting into the library, given that I personally haven't had a lot of use for it. Could you please describe the use cases where you use the inner errors? That would help put it into proper context. |
@vkhorikov Thanks for your reply. The main idea is to be able to have errors which contain inner errors, similar to how the inner exceptions work. This allows maintaining a stack of errors. If you have a flow where method A calls method B which in turn calls method C, and all the three methods return a Without an error which can contain inner errors, how do you have a good context of what went wrong in a chained call? |
Sorry for the late reply.
In my experience, once you encounter an error, you just short-circuit and exit from all further processing. I personally never needed inner errors to be part of the error I'm returning (multiple errors shown side-by-side in a list -- yes, but not multiple errors where one includes another one). That's why I asked for an example from your past projects. That would help put this feature into proper context. Could you describe one? |
I agree with your perspective regarding the InnerError; however, I still believe that support for an Error class would be valuable. There are scenarios where an error string might not be sufficient, and I have encountered situations where it was necessary to raise business errors that eventually manifest as HTTP errors. These errors require localization into various languages, making an Error class with a code or localization code property beneficial for handling them at the front end. I hope this clarifies my viewpoint. |
Yeah, there's a separate open issue for the Error class, which I agree is a good idea to add to the library. |
With the result pattern, I often feel the need to have code which is able to create an error based on another error:
In order for
Error
class to be able to support inner errors, I created it like this;which allows me to write:
But since this Error class does not already exist in CSharpFunctionalExtensions, am I the first who needs this concept of inner errors?
I think it's important to keep a stack of inner errors, similar to how exceptions work.
Looking forward to hear your thoughts!
The text was updated successfully, but these errors were encountered: