Error classes describe the severity of execution errors and more importantly, the measure to which they are recoverable. Functions that implement applicable interfaces should return one of this codes when in error (most would return 0 for success).
See Limiting The Scope Of Errors.
indicates that the error is recoverable, i.e. the program execution can continue
indicates that while the error may (technically) be ignored, ignoring it might not be the brightest idea and that stopping the program execution is strongly suggested
indicates that the error is severe enough not to allow the continuation of program execution