2011-11-10 4 views

답변

6

Java의 예외는 Throwable에서 상속받은 일반 개체입니다. 예외를 검사 할 것인지 (즉, 컴파일러가 던질 수있는 메서드 시그니처에 throws 절을 확인하는지 여부)를 결정합니다. 사용자 정의 예외를 확인하려면 RuntimeException에서 Exception (예외가 아닌 경우)을 상속받습니다. 응용 프로그램을 종료해야하는 복구 할 수없는 예외에 대해서는 Error을 확장 할 수도 있습니다.

예외를 작성하는 경우 설명에주의를 기울여야합니다. 즉, 예외가 발생하면 예외 메시지와 스택 추적 만보고 무슨 일이 일어 났는지 일반적인 생각을 가지고 있어야합니다. 메시지를 매개 변수로 사용하는 예외 생성자는 귀하의 친구입니다. ExceptionRuntimeException 모두 필요한 생성자를 제공하므로 가장 간단한 경우에는 생성자를 호출해야합니다.

예외를 던지는 메소드와 동일한 추상화 수준에서 예외를 유지해야합니다. 예를 들어 특정 데이터베이스의 구현 세부 사항을 숨기는 도메인 객체에 액세스하기위한 일반 인터페이스가있는 경우 오류가 발생하면 데이터베이스 연결에서 발생한 예외를 단순히 다시 발생 시켜서는 안됩니다. 올바른 예외 수준의 예외 클래스로 예외를 래핑 할 수 있습니다. 이전과 마찬가지로 ExceptionRuntimeException에는 이미 해당 제약사가 있습니다.

프로젝트 및 특정 클래스의 예외 계층 구조 계획에 도움이되지 않을 수 있습니다. 프로젝트에 대한 더 자세한 설명으로 질문을 업데이트하십시오.

+0

사실 가능한 모든 기능을 사용할 수있는 구성 요소를 만들려고합니다. 맞춤 예외를 만드는 동안주의해야하는 접근 방법 목록 (do 및 don'ts)을 찾지 못했습니다. Exception 클래스에서 국제화를 사용했습니다. 그것은 단지; printStackTrace()를 오버라이드 (override)하는 것이 좋을까? – Wahid

+0

printStackTrace()를 오버라이드 (override)하는 것은 추천하지 않습니다. 개발자가 버그를 잡는 데 도움이되는 유일한 것이기 때문에, 데이터는 매우 중요합니다. 어떻게 바꿀거야? – socha23

관련 문제