# Asynchronous error handling

## fw.onError

Footwork wraps internal asynchronous calls and looks for an optional `fw.onError` callback to execute, if an exception is encountered, before throwing the original error. This gives you the opportunity to run custom logic, such as passing the error to a logging module. Additionally, since the original call is wrapped in a try/catch, the error passed to `fw.onError` contains a `stack` property, which is not true in many browsers when handling errors using `window.onerror`.

This functionality applies to errors in the following contexts:

- asynchronous updates made as part of the `textInput` and `value` binding
- component loading of a cached component when not configured for synchronous loading
- rate-limited and throttled computeds
- event handlers added by `fw.utils.registerEventHandler` including those bound by the `event` and `click` bindings

## Example

    fw.onError = function(error) {
      myLogger("knockout error", error);
    };