2012-08-06 3 views
4

갖는 다음과 같은 일반적인 정의 :
오류 - 오류 (코딩의 실수)
오류의 원인 - 실패로 이어질 수 있습니다 잘못된 상태
실패 - 정확한 서비스에서 서비스의 편차장애/오류/실패

다음 코드의 올바른 응용 프로그램이 될 것입니다 무엇

:

코드 말아야을 100 미만의 균형이있을 때 철회를 허용하지 마십시오

제가 이해하는 한 잘못은 누락 된 연산자입니다. 그러나 오류와 실패는 무엇입니까?

+0

오류, 오류, 실패의 간단한 예제 : 메서드는 100 개의 난수가있는 배열을 반환하지만 코드의 오류로 인해 101 개의 난수가있는 배열을 잘못 반환하는 경우가 있습니다. 그러나 배열을 요청한 메서드는'for (int i = 0; i <100; ++ i)'요소가 100 개 있다고 가정하므로 오류가 발생하지 않으며 아무런 오류도 발생하지 않습니다. (오류로 인해 99 개의 요소가 발생한 경우 오류가 있었지만이 예제의 오류에도 불구하고 나머지 코드는 실패하지 않았습니다.) – AnorZaken

답변

7

(코딩 또는 논리 오류)를 코드에서 비교할 때 누락 된 연산자라고 말한 것입니다. 정확하게 100의 균형이 존재하지 않는다면 아무도이 실수를 알지 못할 수도 있습니다.

어느 시점에서 잔액이 100이고 확인이 끝나면 오류가 노출됩니다. 시스템이 올바르지 않은 상태가됩니다. 그것은 철수를 허용해서는 안되었지만 대신에 철회를 허용해야했습니다. 탈퇴가 허용되면 시스템이 정상적으로 작동하지 않고 사용자가 오류를 보게됩니다.

이 간단한 예에서는 사용자가 오류 상태의 결과를 볼 수 있으므로 오류와 오류를 구분하기가 어렵습니다. 코드의 다른 곳에 다른 검사가 있다고 가정하고 철수가 완료되지 않았기 때문에 시스템이 잘못된 상태 (오류가 발생했습니다)이지만 다른 조건이이 상태를 가리고 사용자가 검사하지 않았을 것입니다 실패를 보았다.

+0

감사합니다. 몇 번만 물어 봤지만 지금까지 내가받은 답변은 최고입니다. 오류가 발생하지만 즉시 오류를 일으키지 않는 예제를 만들 수 있습니까? – user970696

+0

나는 당신의 질문을 약간 편집하여 (매우 끔찍한 코드를 만들어 내고) 그에 따라 내 대답을 설명하고 수정하기가 더 쉬워졌습니다. – Edu

+0

고마워,하지만 실수 한거 아니니? 당신은 균형이 100 일 때 BalanceOK가 가치가 있다고 말했지만 이것은 코드에 따라 다릅니다. – user970696

-3

이 질문은 Context가 필요합니다. 또한 '숙제'스타일 질문 인 것 같습니다. 제공된 정의에서 '누락 된 = 연산자'는 '오류'가 아닐 수도 있습니다.

오류에 대한 미만 100

을 할 필요가 명시 적으로, 당신은 '상태'를 참조하고 있습니다 테스트중인 변수 '밸런스'. 이와 관련하여 상태를 평가하기 위해 이전 제어 흐름 계산서 (if/for/while)를 살펴야 할 수 있습니다.

실패 ... 음, 아마도 통화 지향 프로그램을 다룰 때 자주 발생하는 간단한 변환 오류 (int/float)를 처리하고 있습니다.

이 일을 할 예정이다 일을하지 코드를 언급 할 때, 우리가 일반적으로 참조 : 오류가 있습니다

  • 컴파일/런타임 오류
  • 논리 오류
+0

누락 된 연산자는 오류가 될 수 있으므로 코딩 오류가 발생합니다. Pls가이 또는 신뢰할 수있는 피연산자를 읽습니다. – user970696