Note: This tutorial assumes that you have completed the previous tutorials: Debug Modes.
(!) Please ask about problems and questions regarding this tutorial on Don't forget to include in your question the link to this page, the versions of your OS & ROS, and also add appropriate tags.

Error Handling in the ECL

Description: Shows how the ecl does error handling at the simplest level, with macros and flags.

Keywords: ecl error handling

Tutorial Level: BEGINNER

Next Tutorial: Assertions


ecl_errors defines a macro, LOC, is a means of picking up the current file and line number of the point at which it is processed. Example code further below.

Error Flags

A set of flags is provided through the enumeration ecl::ErrorFlag. These, when coupled with the ecl::Error (error handler) class and LOC macro provide a convenient means of quickly identifying errors produced by the ecl libraries regardless of the platform that is used.

   1 ecl::Error void f(const int &i) const {
   2     if ( i == 3 ) { 
   3         return ecl::Error(ecl::NoError);
   4     } else {
   5         return ecl::Error(ecl::OutOfRangeError);
   6     }   
   8 int main() {
   9     ecl::Error error = f(5);
  10     if ( error.flag() != NoError() ) {
  11         error.print(LOC);
  12     }
  13     // output is ~ 'my_main.cpp : 11 - Out of range error.'
  14     return 0;
  15 }

The ecl::Error class can be extended to customise the error messages - refer to ecl_time_lite and the ecl::TimeError class for an example.

Wiki: ecl_errors/Tutorials/Error Handling in the Ecl (last edited 2012-01-17 01:50:25 by DanielStonier)