다양한 오류를 보고할 때 적절한 오류 접두어를 어떻게 찾나요? 이 작업을 수행하는 방법에 대한 지침이나 개요가 있습니까? 많은 명령에서 패턴을 볼 수 있지만 내 소프트웨어에 어떤 명령을 채택해야 하는지 알기가 어렵습니다.
error:
내가 "잘못된 접두사"라고 부르는 것은 , usage:
, 등과 fatal:
같은 유형의 접두사를 나타냅니다. warning:
때로는 이러한 접두사가 여러 개 있을 수 있습니다.
실제 사례는 다음과 같습니다.
$ ls non/existant/directory
ls: cannot access 'non/existant/directory': No such file or directory
$ git status
fatal: not a git repository (or any of the parent directories): .git
$ apt version
E: Invalid operation version
$ gcc
gcc: fatal error: no input files
compilation terminated.
답변1
이는 100% 프로그래머의 결정입니다. 이들 중 일부는 문제의 심각도에 따라 결정되며 다음과 관련됩니다.시스템 로그 심각도 수준(좋다실수또는경고하다) 그러나 stdout/stderr 메시지의 경우 이러한 메시지는 프로그램 작성자가 좋아하는 모든 형식일 수 있습니다.
일부 라이브러리(예: GLib)에는 자체 라이브러리가 있습니다.도우미 기능경고 및 오류는 "표준화된" 형식으로 보고되지만 이는 시스템 전체 정책이 아닙니다.
errno
stderror
및 같은 함수는 perror
오류 메시지에 "접미사"를 제공하지만 이는 사람이 읽을 수 있는 오류 코드 표현일 뿐입니다(예: EPERM
->허용되지 않는 작업), 접두사는 여전히 프로그래머에 의해 "선택"됩니다.
답변2
모든 프로그램에는 고유한 오류 보고 규칙이 있으므로 구문 분석할 수 있는 단일 표준은 없습니다. 가장 좋은 방법은 프로그램의 반환 코드( $?
bash에서 사용 가능)를 확인하는 것입니다. 0이 아니면 프로그램에 오류가 발생한 것입니다. 그러면 프로그램에서 표준 출력과 표준 오류를 수집하여 보고서에 포함할 수 있습니다.