Мне интересно, почему в классах исключений .NET из библиотеки базового класса по умолчанию есть некоторые изменяемые члены.
- Почему я могу изменить
Source,HelpLinkи значения изData, но не могу изменить ничего подобного, какMessage? - Почему бросание исключения перезаписывает
StackTrace, что делает его изменчивым? Добавление информации о трассировке стека в существующую трассировку было бы лучше (но все же изменяемо)? - Какие возможные улучшения в дизайне исключений .NET могут быть?
Мне интересно только выбор дизайна...