2010-03-30 3 views
1

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

"Проект с предоставленным ID не может быть назначен.

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

ответ

3

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

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

+0

Это потому, что проект находится в неуместном состоянии. Благодаря ! –

2

звучит как InvalidOperationException мне ...

0

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

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

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

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

Смежные вопросы