Java эквивалент .NET System.InvalidOperationException

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

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

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

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

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

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

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

спасибо

Ответ 1

Выбросьте IllegalStateException:

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