int index = FindClosestIndex(frame);
if (_data[index].Frame == frame)
return _data[index];
else
return interpolateData(frame, _data[index - 1], _data[index]);
이제이 코드 블록 전에 FindClosestIndex()
이 0을 리턴하지 않는지 점검해야합니다. 불가능합니다. 그러나 FindClosestIndex
의 논리는 어느 정도 복잡하기 때문에 어느 누구도 예상하지 못한 버그가 아직 발견되지 않았고 코드가 맞지만 FindClosestIndex
이 0을 잘못 반환 할 수도 있습니다.
0을 반환하면 _data[index - 1]
문에 ArgumentOutOfRangeException이 발생합니다. 나는 그 예외 거품을 내버려 둘 수는 있겠지만, 차라리 이렇게 할 것이다.
if (index == 0)
throw new ApplicationLogicException("There is a bug that caused FindClosestIndex to return an int <= 0 when it shouldn't have.");
코드가 오류 상태를 발견하면 사용자 정의 예외를 던지는이 방법을 권장하겠습니까? 이런 상황이있을 때 당신은 무엇을합니까?