Использовал С# в течение примерно пяти лет, и только теперь это ударило меня о видимости класса пользовательских исключений. Совершенно законно писать внутренние или даже частные вложенные исключения, например:
internal class WhyDoThis : Exception { }
public class Foo { private class WhyWhyWhy : Exception { } }
Итак, когда вы идете о том, чтобы выбрасывать эти исключения из своих DLL, только люди (меньшинство), которые делают приличную (не покемоновую) обработку исключений, разбивают свои приложения.
Итак, мой вопрос в том, какова цель такого шаблона? Или почему это даже законно?