이것은 지금 당분간 제게 당황 스럽습니다.아무런 해를 끼치 지 않아도 코드가 논리적으로 유효하지 않은 호출을 예방해야합니까?
리소스를 나타내는 클래스를 상상해 보겠습니다.이 리소스를 사용하려면 먼저 리소스에 '열기'메서드를 호출해야합니다. 그렇지 않으면 InvalidOperationException이 throw됩니다.
내 코드가 이미 열려있는 리소스를 열거 나 이미 닫힌 리소스를 닫으려고 시도하는지 확인해야합니까?
해를 끼치 지 않아도 논리적으로 유효하지 않은 호출을 방지해야합니까?
이 방법으로 프로그래밍하면 다른 쪽에서 코드를 작성하는 데 도움이 될 것이라고 생각하지만 너무 많은 책임을지고 재사용에 영향을 줄 수 있다고 생각합니다.
너희들은 어떻게 생각하니?
편집 :
나는 그것이 가능한 잘못된 사용 중 미끄러하지 않기 때문에 이것은 방어 프로그램 호출 할 수 있다고 생각하지 않으며, 다른 경우 InvalidOperationException이 발생합니다.
글쎄요. 남용 가능성이있을 때 충돌을 막기 위해 방어 프로그래밍을 사용합니다 (이는 인터페이스 반대편에서 unknwon (ab) 사용자와 인터페이스 할 때마다 발생 함). 그러나 OP는 아무 일도 일어나지 않았으므로 학대를 처리해야한다고 질문했다. 나는 동의하지 않는다 - 사용자는 코드 (오류 코드, 주장 또는 예외 임)에 문제가 있음을 알려야한다. 간단히 말해서 : (방어 프로그래밍을 사용하여) 처리하지만 알려줍니다. 제비 또는 충돌 및 API 사용자는 당신을 미워할 것입니다. – MaR
나는 그 오류를 삼키는 것에 관해 아무 말도하지 않았다. 오류가 발생했을 때이를 인식하고 적절한 조치를 취해야합니다. – Ikke
흥미로운 점은 나쁜 관행에 대해 더 많은 정보를 찾을 수 있습니까? – Trap