Information that is presented following the detection of some error condition and is mainly intended to assist in identifying the cause of the error.
As an example, consider the compilation and subsequent execution of some program. Syntactic errors in the program, i.e. failure of the program to conform to the defined syntax of the programming language, would normally be detected at compilation time, and the compiler would then generally produce error diagnostics to indicate both the location and the kind of error (unrecognized statement, undeclared identifier, etc.). At execution time certain kinds of semantic errors may be detected, i.e. improper behavior of a program that conforms to the defined syntax of the language (such as attempted division by zero). In this case the error diagnostics may be produced by some run-time system. See also error routine.