aboutsummaryrefslogtreecommitdiff
path: root/tools/addon-sdk-1.4/packages/api-utils/docs/errors.md
blob: 3ce5b190a21bf757f5f1c986095f2b6ea592f2ec (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<!-- contributed by Drew Willcoxon [adw@mozilla.com] -->

The `errors` module provides helpers for safely invoking user callbacks.

<api name="catchAndLog">
@function
  Wraps a callback in a function that when invoked will catch and log any
  exception thrown by the callback.
@param callback {function}
  The callback to wrap.
@param [defaultResponse] {value}
  This value will be returned by the wrapper if `callback` throws an exception.
  If not given, `undefined` is used.
@param [logException] {function}
  When `callback` throws an exception, it will be passed to this function.  If
  not given, the exception is logged using `console.exception()`.
@returns {function}
  A function that will invoke `callback` when called.  The return value of this
  function is the return value of `callback` unless `callback` throws an
  exception.  In that case, `defaultResponse` is returned or `undefined` if
  `defaultResponse` is not given.
</api>

<api name="catchAndLogProps">
@function
  Replaces methods of an object with wrapped versions of those methods returned
  by `catchAndLog()`.
@param object {object}
  The object whose methods to replace.
@param props {string,array}
  The names of the methods of `object` to replace, either a string for a single
  method or an array of strings for multiple methods.
@param [defaultResponse] {value}
  This value will be returned by any wrapper whose wrapped method throws an
  exception.  If not given, `undefined` is used.
@param [logException] {function}
  See `catchAndLog()`.
</api>