2013-02-20 3 views
0

RuntimeException 작동 방법을 이해하는 데 문제가 있습니다. Google을 통해 검색했습니다.Java RuntimeException

하나를 사용하고자하는 어플리케이션은 두 개의 현금 레지스터를 시뮬레이션하는 현금 등록 프로그램입니다. 나는 두 개의 클래스를 사용할 것입니다 : 하나는 입력과 출력, 다른 하나는 모든 메소드 등입니다.

내 할당 설명에서 유익한 오류가있는 RuntimeException을 던지는 위반 된 전제 조건을 사용자의 메서드가 catch하는지 확인했습니다.

나는 이것을 구현하는 방법을 모르겠다 - 여기서 구문을 찾고있는 것이 아니라 어떻게 이런 식으로 설정 하는가? RuntimeException이 어떻게 작동하는지 또는 어떤 전제 조건을 만족 하는지를 완전히 이해하지 못한다. 방법조차있다. 어떻게 구현할 수 있습니까?

답변

5

전제 조건은 메서드가 올바르게 실행되기 전에 이어야한다는 내용의 문서 파일이어야합니다. 예를 들어, 인수가 양수 여야한다는 전제를 가질 수 있습니다. (또 다른 예는 개체가 특정 상태에 있어야한다는 것입니다.)

RuntimeException 유형 RuntimeException (와 그 서브 클래스)의 예외에 특별한 Exception의 서브 클래스입니다 되지 않은 - 당신은 할 필요가 없습니다 메서드 시그니처의 일부로 선언했음을 선언하십시오. RuntimeException의 한 예는 IllegalArgumentException입니다.

그래서 우리는이 양수로 불리는 경우 에만 일이, 당신이있을 것입니다 방법이있는 경우 :

public void foo(int x) { 
    if (x <= 0) { 
     throw new IllegalArgumentException("x must be positive"); 
    } 
    // Rest of the code here 
} 

이이 상황에서 작동하도록 시도하는 방법의 나머지 부분을 보호 그것을 결코 의도 된 것이 아닙니다.

+0

이 많이 당신을 감사하는 데 도움이됩니다. 하지만 내가 얻지 못하는 것은 "RuntimeException이 Exception의 하위 클래스"또는 "선택 취소됨 - 메소드 시그니처의 일부로 던져 넣을 것을 선언 할 필요가 없다"라고 말할 때 의미하는 것입니다. 미안하지만 전문 용어로 길을 잃어 버립니다. –

1

더 많은 단계를 수행하기 전에 몇 가지 기사를 읽으면서 노하우 수준을 높여야한다고 생각합니다. 첫째로 당신은 자바의 모든 에러와 예외의 수퍼 클래스 인 Throwable 클래스에 대해 조사 할 수 있습니다. 그것에 대해서도 this question을 확인할 수 있습니다.

그런 다음 Exceptions을 방문해야합니다. 오라클 튜토리얼은 run-time handling에 대해 자세히 설명합니다. 또는 제목을 실례로 보여주는 this article도 확인할 수 있습니다. 오류 및 예외 계층에 대한 또한

이 그래픽은보다 쉽게 ​​이해할 수 있습니다 :

이해

Throwable Family