Какой класс исключений выбрать - PullRequest
1 голос
/ 30 марта 2010

Предположим, вы хотите бросить Exception так:

'Невозможно назначить проект с указанным идентификатором.'

и вы не хотите писать свой пользовательский класс исключений. Какой предопределенный класс Exception вы бы использовали для этого? (Я говорю о всех классах, наследуемых от Exception)

Ответы [ 4 ]

3 голосов
/ 30 марта 2010
3 голосов
/ 30 марта 2010

Почему проект не может быть назначен? Это потому, что предоставленный идентификатор (предположительно в качестве аргумента) неуместен? Если это так, это должно быть ArgumentException. Если это потому, что состояние проекта не подходит для назначения, то InvalidOperationException будет лучше. Если это что-то еще, пожалуйста, дайте больше деталей.

Конечно, не может быть ничего действительно подходящего. Иногда лучший подход - написать собственный класс исключений.

2 голосов
/ 30 марта 2010

Звучит как InvalidOperationException для меня ...

0 голосов
/ 30 марта 2010

Моя практика (в мире Java) - различать два случая:

  • Вы попросили меня сделать что-нибудь глупое - InvalidOperationException или InvalidArgument будет работать для этого

  • Я временно сломан, если вы попытаетесь снова, это может сработать

Во втором случае я не вижу .NET-эквивалент моего TransientException. Лично я бы расширил SystemException новым классом исключений для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...