Listing 1: A typical example of how most systems log and handle errors

MyClass::myFunc()
{
  try
  {
    TRACE("Entered MyClass::myFunc() (FILE: %s, LINE: %d)\n", 
          __FILE__, __LINE__);
    SomeClass sc;
    ....
  }
  catch( SomethingWentWrongException& ex )
  {
    LOG("Something went wrong in MyClass::myFunc (File: %s, Line: %d):   
        sc.intvar=%d, sc.strvar=%s, ex.string() = %s\n", __FILE__, 
        __LINE__, sc.intvar, sc.strvar, ex.string());
    // recovery goes here
  }
  ....
}
— End of Listing —