컴퓨터 프로그래밍에서 경고 메시지와 오류 메시지의 차이점은 무엇입니까?


대답 1:

(컴파일러의) 오류 메시지는 너무 심각한 프로그램 텍스트에 문제가 있음을 나타내므로 프로그래머가 의도 한대로 코드를 생성 할 수 없습니다.

경고 메시지 (컴파일러의)는 나쁜 연습이나 부주의와 관련된 문제를 나타냅니다. 이는 코드 생성을 막을 정도로 심각하지는 않지만 코드가 프로그래머가 의도 한대로하지 않을 수 있음을 의미 할 수 있습니다.

컴파일러에 모든 경고 메시지를 오류 메시지로 변환하기 위해 플래그를 설정 했으므로 컴파일러는 깨진 것으로 생각되는 실행 가능 이미지를 작성하지 않습니다.


대답 2:

나는 당신이 컴파일하는 동안 이야기하고 있다고 가정합니다.

오류는 언어를 잘못 사용하는 곳이며 컴파일러는 작성한 내용을 이해할 수 없으며 요청한 내용을 사용하려고 시도하지 않습니다. GIGO를 방지합니다.

경고는 언어를 잘못 사용했을 수 있습니다. 컴파일러는 작성된 코드를 사용할 수 있지만 코드에 취약점이 있음을 알 수 있으며 의도 한대로 동작하지 않을 수 있지만 작성된대로 동작합니다. 당신은 "정리 한 트릭"을 사용하고있을 수도 있지만, 깔끔한 트릭은 종종 당신이 상처를받는 곳을 바이트로 만듭니다.

릴리스 빌드에서 경고가 오류로 처리되고 코드를 해제하기 전에 해결해야하는 컴파일러 옵션이 종종 있습니다. 디버그 및 초기 개발 중에는 경고가 실행되는 것을 허용 할 수 있으므로 회복력이 떨어질 수 있습니다.

예를 들어, 문장

기름 토스터 팬

아무 의미도없고, 아무 것도 의미하지 않으며 오류가 발생합니다. 문장은 문장이 아닙니다. 하나

토스터에 기름을 부어

경고가 발생합니다. 지침은 명확하고 간단하며 조치를 취할 수 있지만, 기름을 용기에 넣거나 (또는 ​​배수구) 토스터가 용기 (또는 배수구)가 아니라는 것을 알기 때문에 경고합니다. 우리가 여전히 그렇게해야한다고 말하면 프로그램을 실행하면 토스터에 정성스럽게 기름을 부을 것입니다. 이제 지저분한 카운터와 사용해서는 안되는 토스터가 있습니다. 결과는 예상과 다르지만 조치가 가능했습니다.

물론 일부 언어에는 잘못된 유형을보고 경고가 아닌 오류를 발생시키는 컴파일러가 있습니다.


대답 3:

다른 답변은 컴파일 된 언어에 대해 이야기하지만 오류와 경고의 구별은 해당 도메인 외부에서 볼 수 있습니다. 일반적으로 오류는 프로그램이 계속해서는 안될 정도로 중요한 프로그램의 문제인 반면, 경고는 유해하지는 않지만주의를 기울여야 할 문제입니다. 코드를 개발할 때 '경고 없음'정책을 갖는 것이 좋습니다. 그들은 혼란스럽고 코드베이스에 대한 모든 새로운 기여자는 왜 경고가 있는지 이해해야합니다.