Trigger / catch custom errors in vue components.
Setup error listeners within Vue component to listen on errors generated anywhere in the component tree. The plugin makes it easy to trigger custom errors and notify interested components. Errors are propagated hierarchically from bottom to top. Every handler in the chain gets an opportunity to handle the error and or let it propagate it to the parent.
Install
npm install vue-error-catch --save
Usage
;; Vue; const errorView = template: "<div>Error view</div>"; const childComponent = template: `<div><error-view v-if="renderErrorView"/></div>` components: errorView hasError: false computed: { return thishasError; } methods: if ecode === 101 // handle the error thishasError = true; // stop propagation return false; ; const parentComponent = template: `<div><child/></div>` components: child: childComponent methods: // this will never be triggered because child component // handled the error and returned false. ; const mainComponent = template: "<div><parent/></div>" components: parent: parentComponent { // trigger an error on the component tree this; };
API
$catch
: Called when a custom error is triggered anywhere in the component tree. Receives the thrown error as the only argument.$error
: trigger a custom error. Theerror
argument is passed to$catch
hooks on the component tree until it is handled or the last hook is reached.
Error Propagation
$catch
hooks are invoked from bottom to top, i.e. if a parent and child component both declares $catch hooks then the child's hook will be executed before the parent's.- A
$catch
hook may returnfalse
to prevent the error from propagating further.