2009-08-20 3 views
0

시나리오에 대해 추가 예외를 발생 시키려면 기존 서비스 API를 변경해야합니다. 예외는 이미 throw 된 예외의 하위 유형입니다. 이 작업을 수행 할 수 있습니까? 아니면 이전 버전과 호환되지 않는 것으로 간주됩니까?API 디자인 : 새로운 예외 유형 추가 - 안전합니까?

나는 별도의 jar 파일에 인터페이스를 가지고 있기 때문에, 내 서비스가 이미 던져진 하나의 자식 인이 새로운 예외를 던지고 클라이언트가 새로운 jar 파일을 가지지 않는다면 클라이언트가 깨지거나 가능한가? 전에도 부모 예외를 잡으려고?

문제는 모든 예외적 인 경우에 발생하는 매우 일반적인 예외이며 일부 클라이언트는 예외를 식별하는 더 나은 방법을 원합니다. 예외에서 메시지를 구문 분석하는 것 외에는 모든 클라이언트가 인터페이스를 업그레이드 할 수는 없습니다. 새로운 예외를 도입하십시오 -이 시나리오를 가장 잘 처리하는 방법은 무엇입니까?

감사 아빈 새로운 예외로

답변

1

는 기존의 하위 유형, 당신은 기존의 암호를 해독하지 말아야합니다. 클라이언트 코드가 기본 예외를 트랩하면 새 예외를 트랩합니다.

그런 다음 클라이언트 코드를 리팩토링하여 더 새로운보다 구체적인 예외를 트랩 할 수 있습니다.

+0

새로운 하위 유형의 객체가 클라이언트에있는 항아리에 없다면 ClassNotFoundException 또는 이와 비슷한 것을 얻을 것이라고 생각했습니다. – Arvind

+0

@Arvind - 이런 종류의 것을 테스트하는 가장 좋은 방법은 테스트 응용 프로그램을 설정하는 것입니다. 어떤 일이 일어나는지보기 위해 편집을하십시오. – ChrisF