Throw ArgumentNullExceptions for null arguments#570
Merged
Conversation
.NET developers expect that passing null erroneously to a method will result in an ArgumentNullException, but currently it's resulting in a custom ValidationException. There are also places where string interpolation is being used to create the error message; the work and allocation associated with that interpolation is going to happen regardless of whether the exception is thrown or not.
|
LGTM. 💡 A code weaver like Fody.NullGuard or a Roslyn code generator might be helpful in replacing all those runtime |
lemillermicrosoft
previously approved these changes
Apr 21, 2023
dluc
reviewed
Apr 22, 2023
lemillermicrosoft
previously approved these changes
Apr 27, 2023
Member
|
@stephentoub looks like there are some conflicts that need to be resolved before merging. |
Member
Author
Done. Thanks. |
shawncal
approved these changes
Apr 27, 2023
dluc
pushed a commit
that referenced
this pull request
Apr 29, 2023
### Motivation and Context Use ArgumentNullException as devs expect, and avoid exception-related work when not throwing. ### Description .NET developers expect that passing null erroneously to a method will result in an ArgumentNullException, but currently it's resulting in a custom ValidationException. There are also places where string interpolation is being used to create the error message; the work and allocation associated with that interpolation is going to happen regardless of whether the exception is thrown or not.
dehoward
pushed a commit
to lemillermicrosoft/semantic-kernel
that referenced
this pull request
Jun 1, 2023
### Motivation and Context Use ArgumentNullException as devs expect, and avoid exception-related work when not throwing. ### Description .NET developers expect that passing null erroneously to a method will result in an ArgumentNullException, but currently it's resulting in a custom ValidationException. There are also places where string interpolation is being used to create the error message; the work and allocation associated with that interpolation is going to happen regardless of whether the exception is thrown or not.
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Motivation and Context
Use ArgumentNullException as devs expect, and avoid exception-related work when not throwing.
Description
.NET developers expect that passing null erroneously to a method will result in an ArgumentNullException, but currently it's resulting in a custom ValidationException.
There are also places where string interpolation is being used to create the error message; the work and allocation associated with that interpolation is going to happen regardless of whether the exception is thrown or not.
Contribution Checklist
dotnet format