아무도 명백한 대답을하지 않았으며 실제로 가장 자주 사용되는 것으로 의심됩니다. 오류 메시지를 읽지 마십시오.
대부분의 오류 메시지의 가치의 대부분은 단순히 그와 같은 줄에 문제가 있다는 것입니다. 대부분의 경우 줄 번호를보고 해당 줄로 이동합니다. 그 시점의 오류 메시지에 대한 나의 "읽기"는 일반적으로 탈지가 아니라 내 눈이 지나가는 것입니다. 회선에서 또는 근처에서 무엇이 잘못되었는지 즉시 명확하지 않으면 실제로 메시지를 읽습니다. 이 워크 플로우는 오류나 오류를 강조하는 IDE 또는 툴링을 사용하는 것이 훨씬 좋으며, 작은 변화 만 고려하는 Karl Bielefeldt의 제안을 자동으로 수행합니다.
물론 오류 메시지가 항상 적절한 줄을 가리키는 것은 아니지만 종종 적절한 근본 원인을 가리 키지 않기 때문에 오류 메시지를 완전히 이해하더라도 도움이되지 않습니다. 적절한 회선을 찾는 데있어 어떤 오류 메시지가 더 안정적인지에 대한 아이디어를 얻는 데 시간이 오래 걸리지 않습니다.
한편으로, 초보자가 만들 수있는 대부분의 오류 는 컴파일러의 도움 없이도 숙련 된 프로그래머에게 고통 스럽습니다 . 반면에, 그들은 초보자에게 너무 명확하지 않을 것입니다 (많은 사람들이 명백 할지라도 대부분의 실수는 바보 같은 실수입니다). 이 시점에서 나는 Robert Harvey에 전적으로 동의한다. 초보자는 단순히 언어에 더 익숙해 져야한다. 이것을 피할 수는 없습니다. 익숙하지 않은 개념을 참조하거나 놀라운 것처럼 보이는 컴파일러 오류는 언어에 대한 지식을 심화시키기위한 프롬프트로 보여야합니다. 컴파일러가 불평하지만 코드가 왜 틀린지 알 수없는 경우에도 마찬가지입니다.
다시 한 번 컴파일러 오류를 활용하기위한 더 나은 전략이 필요하다는 Robert Harvey에 동의합니다. 위의 몇 가지 측면을 설명했으며 Robert Harvey의 답변은 다른 측면을 제공합니다. 친구가 그러한 "용어집"으로 무엇을하기를 원하는지는 명확하지 않으며, 그러한 "용어집"이 실제로 친구에게 큰 도움이되지 않을 것입니다. 컴파일러 메시지는 확실히 언어 1 의 개념을 소개하는 장소 가 아니며 "용어집"은 그다지 나은 곳이 아닙니다. 오류 메시지의 의미를 명확하게 설명하더라도 문제 를 해결 하는 방법을 알려주지는 않습니다 .
1 Elm 및 Dhall (및 아마도 라켓)과 같은 몇 가지 언어와 "초보자 중심"언어 구현은이 작업을 시도합니다. 이러한 맥락에서, 다른 구현을 사용하려는 MSalters의 조언은 직접적인 관련이 있습니다. 나는 개인적으로 그런 것들을 타협하지 않으며 올바른 문제를 목표로하지 않습니다. 이것은 더 나은 오류 메시지를 만드는 방법이 없다는 것을 말하는 것이 아니라 나에게 컴파일러의 신념과 그 신념의 기초를 더 명확하게 만드는 데 중점을 둡니다.