2014-10-13 5 views
2

예외를 throw하는 대신 성공 또는 실패를 나타내는 부울 값을 반환하는 일부 Android API (예 : File.setWriteable)가 있습니다. 주변 코드가 실패 할 경우 예외가 throw 될 것으로 예상 할 경우 반환 값이 false 인 경우 예외를 throw하도록 이러한 호출을 변환하는 좋은 관용구는 무엇입니까?거짓 부울 반환 값을 예외로 변환하는 관용구?

질문

또한 확장 : 나는 계속적으로 다양한 같은 호출 (즉 setWriteable, setReadable)를하면 어떻게 - 예외를 던지기보다는 throw new IOException() 라인을 가진 전에 장점 또는 &&와 함께 체인의 단점은 무엇인가 각 하나?

+0

내가 묻는 것의 (못생긴) 예를 제공해야하는지 확실하지 않습니다 ... –

+0

어설트 트를 좋아합니까? – khelwood

+0

디버깅이 아니므로 어설 션이 적절하지 않은 것 같습니다. –

답변

0

는 방법과 같을 것이다 (IMO, 간단한,하지만 나는 추한 의심) : 청소기, 또는 더 좋은 방법이있을 수 있습니다처럼 보였다 때문에

if (!tmpDir.setWritable(true, false)) { 
    throw new IOException(); 
} 

내가 질문을했다.

+0

당신이 마음에서 가질 수있는 다른 것을보기 힘들다. 메시지로 IOException을 구성해야합니다. – EJP

+0

글쎄, 한 가지는 메시지의 메서드 이름을 복제 할 필요가 없을 것입니다. –

+0

"메서드 이름을 복제 할 필요가 없습니다."라고 말하면서, 리플렉션을 사용하여 수행 할 수있는 정말 혹독한 해킹을 들려주고 있습니다. –

관련 문제