Error handling in COOL is handled in an ADA-like fashion. When an error condition arises in a primitive or built-in function, the function causes the exception to be "raised". Essentially, it is similar to Unix's signal-handling facilities. If the method in question is "ignore"ing that error condition, execution will continue, and the value of the expression will be the error which was generated. Otherwise, execution stops, and a diagnostic message is sent to the user. For example, consider the following method: method bogus var a; var b; a = 3 / 0; b = 1 + 1; endmethod The / operator would raise E_DIV. Since the method is not ignoring it, the default handling applies and the method would stop, and a diagnostic would be printed. If the following statement was inserted after the var b declaration: ignore E_DIV; The variable 'a' would contain E_DIV, and execution would continue.