Errors
In software development, the two strategies used to manage errors are error codes and exception handling. The error code model relies exclusively on returning a number whose value represents either success or any possible error. Historically, there has never been a convergence in the way error codes are structured. For example, the Win32 subsystem error codes and the Component Object Model (COM) define two different sets of error codes in the winerror.h
file, even if they are both parts of the Windows operating system. In other words, error codes are not part of a standard and they need to be translated when the call traverses a boundary, such as a different operating system or runtime environment.
Another important aspect of error codes is that they are part of the method declaration. For example, it feels very natural defining the division method as follows:
double Div(double a, double b) { ... }
But if the denominator is 0
, we should communicate the invalid parameter...