2009-05-21 6 views

답변

3

크기에 따라 다릅니다.

예외가 발생합니까? 전혀. 그러나 나는 연결 실패, 명령 실패에 이것을 원한다. 당신이 무엇을 하든지, 이것을 숨기지 말고, 그들에 대해 알아야합니다. 부작용과 추가 손상을 줄이기 위해 가능한 빨리 내 응용 프로그램을 실패하는 것이 좋습니다.

또한 예외를 기록합니다. Log4net을 사용하여이 문제를 해결합니다. 그러나 나는 출처에서 예외를 기록하고 싶다. 나는 그 (것)들이 거기에서 거품이 일게 할 것이다.

Return null? 무언가를 찾을 수 없거나 (즉, ID로 무언가를 찾고 거기에없는 경우), 예외가 아니라 null을 반환합니다. 그러나이 경우 새로운 예외가 발생하는 것을 볼 수 있습니다.

요점 : 예외는 규칙이 아니라 '예외적'이어야합니다. 예외가 던져지면 뭔가 잘못 되었기 때문에 예외를 수정해야합니다.

+0

귀하의 요점은 매우 유효하다고 생각합니다. +1 –

0

일반적으로 예외를 누설하도록합니다. 특히 Enterprisey 분위기에있는 경우 클라이언트를 기본 저장소 엔진에 대해 신경 쓰지 않게 RepositoryException에 래핑합니다.

예외 대신 이미 false/null을 반환하지 않습니다. 이미 그 값 뒤에 의미가 있기 때문에.

드문 경우이지만 비상용적 인 경우에 예외를 생성하는 뇌 기능이없는 저장소 엔진이있을 수 있습니다. 그 특정 항목을 잡아 내고 적절한 경우 null을 반환합니다 (예 : 행이없는 경우). 스토리지 엔진은이 경우에 오류를 던집니다. 나는 그것을 잡아서 null을 반환합니다.)

+0

예, 예외적 인 경우와 관련된 오류 만 잡아 내고 있습니다. 저장소 내에서 예외를 발견하여 false를 반환하면 저장소 외부에서 오류를 잡아내는 것을 잊지 않고 궁극적으로 사용자 환경에서 동일한 결과를 얻을 수밖에 없었습니다. (내가 실수를 범하고 우아하게 실패했다고 가정) –

관련 문제