Commit ce9375b
Fix IndexOutOfRangeException to use default message instead of "index" (#120881)
## Summary
Multiple classes across the repository were throwing
`IndexOutOfRangeException` with `nameof(index)` as the message
parameter, resulting in an unhelpful error message of just "index"
instead of the standard .NET exception message.
## Changes
This PR updates all occurrences to use the parameterless
`IndexOutOfRangeException()` constructor, which provides the default,
user-friendly message: "Index was outside the bounds of the array."
**Before:**
```csharp
throw new IndexOutOfRangeException(nameof(index));
// Exception message: "index"
```
**After:**
```csharp
throw new IndexOutOfRangeException();
// Exception message: "Index was outside the bounds of the array."
```
## Files Modified
**Logging-related files:**
- **LoggerMessage.cs**: Fixed 7 occurrences across different generic
`LogValues<T>` classes
- **LoggerMessageGenerator.Emitter.cs**: Fixed 1 occurrence in the
source generator template
- **LogValuesFormatter.cs**: Fixed 1 occurrence in the logging formatter
- **FormattedLogValues.cs**: Fixed 1 occurrence in formatted log values
- **LoggerExtensionsTest.cs**: Fixed 1 occurrence in test helper class
- **HttpHeadersLogValue.cs**: Fixed 1 occurrence in HTTP logging
infrastructure
- **Baseline test files**: Updated 3 generated code baseline files to
match the new output
- **LoggerMessageTest.cs**: Added comprehensive test to verify the
exception message is proper
**Other components:**
- **DesignerOptionService.cs**: Fixed 1 occurrence in
System.ComponentModel.TypeConverter
## Testing
- All existing tests continue to pass (291 tests in
Microsoft.Extensions.Logging.Tests, 184 tests in
Microsoft.Extensions.Http.Tests)
- Added new test
`LogValues_OutOfRangeAccess_ThrowsIndexOutOfRangeExceptionWithDefaultMessage`
that validates the exception message for all LogValues variants (0-6
parameters)
- Manually verified the fix produces the expected error message
This is a minimal change that maintains backward compatibility (still
throws `IndexOutOfRangeException`) while significantly improving the
developer experience with a clear, descriptive error message across the
entire codebase.
<!-- START COPILOT CODING AGENT TIPS -->
---
💡 You can make Copilot smarter by setting up custom instructions,
customizing its development environment and configuring Model Context
Protocol (MCP) servers. Learn more [Copilot coding agent
tips](https://gh.io/copilot-coding-agent-tips) in the docs.
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: stephentoub <2642209+stephentoub@users.noreply.github.com>1 parent 48a162c commit ce9375b
File tree
11 files changed
+59
-16
lines changed- src/libraries
- Microsoft.Extensions.Http/src/Logging
- Microsoft.Extensions.Logging.Abstractions
- gen
- src
- tests/Microsoft.Extensions.Logging.Generators.Tests/Baselines
- Microsoft.Extensions.Logging/tests/Common
- System.ComponentModel.TypeConverter/src/System/ComponentModel/Design
11 files changed
+59
-16
lines changedLines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
67 | | - | |
| 67 | + | |
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
196 | 196 | | |
197 | 197 | | |
198 | 198 | | |
199 | | - | |
| 199 | + | |
200 | 200 | | |
201 | 201 | | |
202 | 202 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
69 | | - | |
| 69 | + | |
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
222 | 222 | | |
223 | 223 | | |
224 | 224 | | |
225 | | - | |
| 225 | + | |
226 | 226 | | |
227 | 227 | | |
228 | 228 | | |
| |||
Lines changed: 7 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
482 | 482 | | |
483 | 483 | | |
484 | 484 | | |
485 | | - | |
| 485 | + | |
486 | 486 | | |
487 | 487 | | |
488 | 488 | | |
| |||
525 | 525 | | |
526 | 526 | | |
527 | 527 | | |
528 | | - | |
| 528 | + | |
529 | 529 | | |
530 | 530 | | |
531 | 531 | | |
| |||
577 | 577 | | |
578 | 578 | | |
579 | 579 | | |
580 | | - | |
| 580 | + | |
581 | 581 | | |
582 | 582 | | |
583 | 583 | | |
| |||
626 | 626 | | |
627 | 627 | | |
628 | 628 | | |
629 | | - | |
| 629 | + | |
630 | 630 | | |
631 | 631 | | |
632 | 632 | | |
| |||
684 | 684 | | |
685 | 685 | | |
686 | 686 | | |
687 | | - | |
| 687 | + | |
688 | 688 | | |
689 | 689 | | |
690 | 690 | | |
| |||
748 | 748 | | |
749 | 749 | | |
750 | 750 | | |
751 | | - | |
| 751 | + | |
752 | 752 | | |
753 | 753 | | |
754 | 754 | | |
| |||
816 | 816 | | |
817 | 817 | | |
818 | 818 | | |
819 | | - | |
| 819 | + | |
820 | 820 | | |
821 | 821 | | |
822 | 822 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
30 | | - | |
| 30 | + | |
31 | 31 | | |
32 | 32 | | |
33 | 33 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
| 63 | + | |
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
942 | 942 | | |
943 | 943 | | |
944 | 944 | | |
945 | | - | |
| 945 | + | |
946 | 946 | | |
947 | 947 | | |
948 | 948 | | |
| |||
Lines changed: 43 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
471 | 471 | | |
472 | 472 | | |
473 | 473 | | |
| 474 | + | |
| 475 | + | |
| 476 | + | |
| 477 | + | |
| 478 | + | |
| 479 | + | |
| 480 | + | |
| 481 | + | |
| 482 | + | |
| 483 | + | |
| 484 | + | |
| 485 | + | |
| 486 | + | |
| 487 | + | |
| 488 | + | |
| 489 | + | |
| 490 | + | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
474 | 517 | | |
475 | 518 | | |
0 commit comments