2014-04-10 7 views
0

회사 용 유틸리티 API를 작성 중이며 유틸리티 메서드가 예외를 throw하는 대신 커스텀 빈 Error 객체가 참조로 전달되고 예외 발생시 채워지는 것으로 간주합니다.메서드에서 예외를 throw하는 대신 참조로 Error 객체를 전달하는 것이 좋습니다.

UML 클래스 다이어그램

ABCError 

-code: long 
-message: String 
-throwable: Throwable 

-ABCError() 
-set(code,message,throwable) : void 
-set(code,message) : void 
-set(code):void 
-set(message):void 
-isSet() : boolean 

사용법 :

ABCError error = new ABCError(); 
HttpResponse response = ABCHttpUtils.post(url,headers,parameters,error); 
if(!error.isSet()){ 
//... 
} 

이 좋은 생각하거나 자바 협약을 코딩 나누기 때문에 나쁜 일인가요?

답변

1

분명히 비 관용적 인 Java입니다. 그러나 당신의 코드가 작동하지 않는 주된 이유는 java가 값으로 만 전달된다는 것입니다. C++ 스타일 참조가 없기 때문에 OUT 매개 변수가 없습니다.

편집 : 오, 잠깐, 코드에서 참조 자체를 사용하지 마십시오. 무시하십시오. 그러나 API 클라이언트가 catch/finally 블록 대신 리턴 코드에 대한 모든 호출을 검사하도록 강제 할 때 선택적 오류 매개 변수를 사용하지 말 것을 권장합니다.

+0

(답장을보기 전에 수정 된 답변) –