ErrorHandling » History » Version 6

« Previous - Version 6/10 (diff) - Next » - Current version
J. Moringen, 06/21/2011 10:00 PM
suggestion for fine-grained error logging


Error Handling

This page is only concerned with runtime errors. Program errors are not considered here.

Sources of Runtime Errors

  • Client-supplied event handlers
  • Connectors
    • When receiving notifications
    • When decoding notifications
    • When sending notifications
  • Converters
    • When converting domain-object -> wire-data
    • When converting wire-data -> domain-object

Error Handling Locations

  • In Connectors (via client-supplied policy)
    • Can handle Connector errors
    • Can handle Converter errors
  • In Processors (via client-supplied policy)
    • Can handle errors in client-supplied event handlers
  • In callbacks to client code
    • Can handle Connector errors
    • Can handle Converter errors
    • Can handle errors in client-supplied event handlers

Error Transport Mechanisms

  • Stack unwinding
    • Only applicable for pull-path
    • Can transport Connector errors
    • Can transport Converter errors
  • Callback invocation from local error handling policy
    • Can handle Connector errors
    • Can handle Converter errors
    • Can handle errors in client-supplied event handlers

Error Handling Policies

  • Ignore the error and continue
  • Log the error and continue
    • With backtrace (like "debug" mode)?
    • Without backtrace, maybe don't repeat log message (like "production" mode)?
  • Terminate the whole process (i.e. exit(1))