Java эквивалентно .NET System.InvalidOperationException - PullRequest
72 голосов
/ 01 августа 2010

Я не так знаком с пакетами исключений Java, как с пакетами .NET. Я нахожусь в ситуации, когда, если программирование на C #, я бы бросил System.InvalidOperationException.

Перед созданием собственного подкласса java.lang.RuntimeException мне нужно знать, есть ли подобный тип исключения, который я должен выбросить в Java.

Точный сценарий:

Мой класс - это объект значения, который предоставляет метод int intValue(), возвращающий int. Однако в некоторых ситуациях текущее значение не может быть предоставлено как int, поэтому этот класс также предоставляет boolean isInteger(), чтобы позволить пользователям API знать, когда можно безопасно вызывать intValue().

Если вызывающий абонент вызывает intValue(), когда isInteger() равен false, должно быть сгенерировано исключение.

И вопрос такой: какой тип исключения?

Я знаю, что на этот вопрос может не быть правильного ответа, но, учитывая, что у меня нет большого опыта разработки Java API, я хочу узнать от других разработчиков Java, что они ожидают брошен в этом сценарии.

спасибо

1 Ответ

81 голосов
/ 01 августа 2010

Бросить IllegalStateException:

Сигналы того, что метод был вызван в недопустимое или неподходящее времяДругими словами, среда Java или приложение Java не находятся в надлежащем состоянии для запрошенной операции.

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