如何选择合适的错误前缀?

如何选择合适的错误前缀?

在报告各种错误时,如何找出适当的错误前缀?是否有关于这些应该如何进行的指南或概述?我在许多命令中看到了模式,但发现很难知道我应该在自己的软件中采用哪些模式。

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)有自己的库辅助函数以“标准化”格式报告警告和错误,但这不是系统范围的策略。

errnostderror和等函数perror在错误消息中提供“后缀”,但这只是错误代码的人类可读表示(例如EPERM->不允许操作),前缀仍然是由程序员“选择”的。

答案2

由于所有程序都有自己的错误报告约定,因此您不存在可以解析的单一标准。最好的办法就是检查程序的返回代码(在$?bash 中可用)。如果它不为零,则程序遇到错误。然后,您可能可以从程序中收集标准输出和标准错误,并将其包含在您的报告中。

相关内容