2010-08-01 5 views
63

.NET의 경우와 마찬가지로 Java의 예외 패키지에 익숙하지 않습니다. 나는 C#에서 프로그래밍을한다면 System.InvalidOperationException을 던지는 상황에 처해있다.Java에 상응하는 .NET .NET System.InvalidOperationException

내 자신의 java.lang.RuntimeException 하위 클래스를 만들기 전에 유사한 예외 유형이 Java에 포함되어야하는지 알아야합니다.

정확한 시나리오는 다음과 같습니다

내 클래스는 int를 반환 int intValue() 방법을 제공 값 개체입니다. 그러나 경우에 따라 현재 값을 int로 제공 할 수 없기 때문에이 클래스는 API 사용자가 intValue()을 안전하게 호출 할 수있는시기를 알 수 있도록 boolean isInteger()을 제공합니다.

isInteger()false 일 때 발신자가 intValue()을 호출하면 예외가 발생합니다.

질문 : 어떤 유형의 예외입니까?

나는이 질문에 이 맞지 않을 수도 있다는 것을 알고 있지만, Java API를 설계하는 데 많은 경험이 없다는 것을 고려할 때, 나는 다른 Java 개발자로부터 그들이 무엇을 던질 것으로 예상되는지 알고 싶다. 대본.

감사

+0

중복 가능성이 [C#의 경우 InvalidOperationException의 자바 당량이 있습니까? (http://stackoverflow.com/questions/3165701/is-there-a-java-equivalent-of-cs-invalidoperationexception) – Carl

답변

72

던져 IllegalStateException : 메소드에 유효하지 않거나 잘못된 시간에 를 호출하고있다

신호. 즉, Java 환경 또는 Java 응용 프로그램이 작업의 적절한 상태가 이 아닙니다.

+9

' IllegalStateException '은 묻는 특정 사례에 대해 정확합니다. 어떤 상황에서는'UnsupportedOperationException'을 던지는 것이 더 적절하다고 생각합니다. 예를 들어'Iterator'가'remove' 메소드를 지원하지 않는다면 말입니다. – csauve