2011-04-08 2 views
6

오류 메시지를 외부화하는 모범 사례에 대한 질문입니다.오류 메시지를 외부화하는 방법

저는 코드, 간단한 설명 및 심각도에 오류가있는 프로젝트를 진행하고 있습니다. 그런 설명을 외 부화하는 가장 좋은 방법은 무엇인지 궁금 해서요. 내 마음에 떠오르는 것은 나쁜 코드로 데이터베이스에 저장하거나 속성 파일에 저장하거나 설명이로드 된 정적 클래스를 사용하는 것입니다. 나는 부동산과 함께 갈 것이라고 생각하지만 아마 그것을하는 더 좋은 방법이있을 것입니다.

감사

+2

ResourceBundle을 사용해야합니다 ... @justkt answer를 참조하십시오. – CoolBeans

답변

8

는 해당 메시지 (및 버튼 레이블 텍스트, 가속기, 바로 가기 등의 사용자 인터페이스 메시지 등)를 저장하는 ResourceBundle를 사용합니다. 다음은 error.NameOfErrorMessage라는 오류가있는 ErrorMessages 번들과 변수 프레임에 JFrame이 있다고 가정 한 간단한 예입니다. 당신이 국제화 튜토리얼 About the Resource Bundle Class 볼 수 있습니다 자세한 내용은

ResourceBundle errorMsg = ResourceBundle.getBundle("ErrorMessages"); 
String currError = errorMsg.getString("error.NameOfErrorMessage"); 
JOptionPane.showMessageDialog(frame, currError); 

.

0

이 작업을 올바르게 수행하는 데는 여러 가지 방법이 있다고 생각합니다. 내가 보는 가장 일반적인 방법은 당신 만이 텍스트 파일을 변경해야합니다 귀하의 응용 프로그램에 텍스트 오류를 ​​변경하려면 실제 코드에서 내부 오류 코드에 관한 외부 파일의 사용 및

error.123="Error with data X" 
warning.1="You must use ..." 

같은 설명 무언가이다 . 이것은 우리가 유사한 문제에 직면했다

error.123="Error con el dato X" 
warning.1="Deberías usar ..." 
3

방식 국제화 작품이다. 코드에 메시지를 넣는 것이 좋지 않은 선택입니다. 우리는 어떤 대안이 더 나은지에 영향을 미치는 몇 가지 요인을 발견했습니다. 우리의 경우에는 클라이언트 쪽 Java에서 처리되는 오류 코드와 서버 쪽 SQL 및 Perl 코드에서 동일한 오류 코드를 처리해야했습니다. 우리는 데이터베이스를 사용하기 때문에 중앙 정의가 유용하다는 것을 알았습니다.

Java에서 오류 코드 만 처리해야하는 경우 특성 파일 또는 자원 번들이 로컬라이제이션 및/또는 국제화를 허용하므로 가장 유연합니다. 나는 정적 인 클래스에서 벗어날 것이다; 인라인 오류 설명보다 낫지 만 상대적으로 융통성이 없습니다.

+0

데이터베이스 솔루션을 사용하면 DB에서 값을 찾는 자체 하위 클래스 인 ResourceBundle을 만들 수 있으므로 ResourceBundle을 사용하여 위치 지정 및 i18n 이점을 얻을 수 있습니다. – justkt

+0

@justkt - 그렇게 할 수는 있지만 ResourceBundle을 서브 클래 싱하는 것은 많은 작업입니다. 또 다른 대안은 PropertyResourceBundle로로드 할 수있는 데이터베이스에서 특성 파일을 생성하는 것입니다. –

관련 문제