-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Error: Catch filter must inherit from Error or be a simple predicate function
bgdavidx edited this page Aug 10, 2015
·
3 revisions
Error: Catch filter must inherit from Error or be a simple predicate function
Bluebird supports typed and predicate .catch
calls. However in order to use the typed/predicate catch syntax for error handling you must do one of two things.
Pass it a constructor that inherits from Error
:
}).catch(ReferenceError, function(e) { // this is fine
}).catch(Array, function(e) { // arrays don't capture stack traces
This is to enable better stack trace support and to have more consistent and logical code.
Alternatively, if you provide it a predicate be sure it's a simple function:
}).catch(function(e){ return false; }, function(e) { // this catches nothing
}).catch(function(e){ return e.someProp == 5; }, function(e) { // this is fine
Please see the API docs on how to use predicate catches.