2011-01-04 6 views
1

예외 메시지가 저장되는 단일 위치를 갖고 싶습니다 (사용자가 마주 치지 않습니다). 다른 오류 메시지와 코드가있을 수있는 몇 가지 예외가 있습니다. 이 코드는 문서화 및 통신 목적으로 만 사용됩니다.예외 메시지를 전역 위치에 저장

  1. ResourceBundle의 모든 예외 메시지
  2. 글로벌 열거에 대한 그러나, 한 곳에서 모든 오류 메시지를 가진 것은 내가이를 고려하고

    작업 사람들에 대한 제안 수정 오류를 참조하여 제공하는 것이 매우 중요합니다 각 열거 형에는 예외가 포함될 수있는 메시지와 코드가있는 메시지와 코드가 포함 된 모든 Exception 클래스 내에

  3. 열거 형이 포함됩니다.

어떤 옵션이 가장 좋습니까?

답변

1

리소스 번들과 열거 형은 문제의 같은 부분을 해결하지 못합니다. 지역화를위한 텍스트 외부화 (리소스 번들 또는 유사)와 메시지 유형을 식별 할 수있는 방법이 필요합니다. 열거 형은 시스템이 확장 가능하지 않은 경우 (모든 예외 유형을 제어하는 ​​경우) 메시지 유형을 적절하게 추적 할 수있는 방법입니다. 열거 형은 새로운 코드를 추가 할 방법이 없기 때문에 다른 사람들이 시스템을 확장 할 수있는 좋은 유형이 아닙니다. 예외 유형에 문자열을 사용하는 것이 좋습니다. 필요하면 쉽게 네임 스페이스 파티셔닝을 할 수 있습니다.

+0

다른 것들을위한 것임에 동의합니다. 나는 현지화 할 필요가 없다. 내 시스템은 다른 외부 당사자에 의해 확장되지 않습니다. 그 도서관이나 anysuch하지 않습니다. 그 웹 응용 프로그램. 나는 당신의 마지막 문장을 이해하지 못했습니다. – treefrog

+1

확장 성이 필요하지 않은 경우 형식에 enum을 사용하는 것은 매우 간단하고 형식 안전성이 뛰어난 방법입니다. 마지막 문장은 확장 성 시나리오에서 예외 유형 충돌을 피하는 문제와 관련이 있습니다. 오류 코드는 java 패키지 이름과 유사한 문자열이 될 수 있습니다. –

+0

아. 어쨌든 하나의 파일 (열거 형)을 사용하면 어쨌든 오류를 분할해야하기 때문에 어쨌든 그렇게 할 필요가 있습니다. 어떤 제안? 어떻게 든 가독성/유지 보수성을 위해 오류 관련 예외를 유지해야합니다. 어떤 아이디어? 나는 세 번째 옵션을 추가했다. – treefrog

1

나는이 중 하나를 제안 할 수 없습니다. 연산자를 읽을 수 있도록하려면 Javadoc 또는 doclet 양식을 사용하여 시스템의 모든 예외 메시지가 들어있는 문서를 만듭니다. Doxygen을 사용할 수도 있습니다.

단일 예외 메시지/코드마다 하나의 파일을 생성하면 모든 코드가 하나로 묶여 단일 파일을 통해 모 놀리 식 프로그램을 만들 수 있습니다. SQL 예외를 포함 할 필요가없는 시스템 부분이나 SQL 예외에 액세스 할 수없는 사용자 인터페이스 예외가있을 것입니다.

+0

"프로그램"이 귀 였음을 분명히해야하고 오류 메시지는 코드에서 작성한 것입니다. sqlexceptions 등이 아닙니다.나는 옵션 2에 기대고있다. ... 3 옵션은 어떨까? 오류 메시지에 대한 코드 및 패턴 문자열과 함께 모든 예외 클래스 내부에서 열거 형을 사용할 수 있습니다. 어쩌면 나는 당신의 제안을 사용하여 시스템 전체의 오류 메시지 테이블을 생성 할 수 있습니다. 비록 그것을하는 방법을 모르겠다. – treefrog

관련 문제