Skip to content

Instantly share code, notes, and snippets.

@e00dan
Created September 8, 2015 11:29
Show Gist options
  • Save e00dan/be2a0c17d4c236d81843 to your computer and use it in GitHub Desktop.
Save e00dan/be2a0c17d4c236d81843 to your computer and use it in GitHub Desktop.
Custom errors
import Ember from 'ember';
import CustomError from '../errors/custom-error';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
testCustomError: Ember.on('init', () => {
let customErrorInstance = new CustomError();
console.log(customErrorInstance);
})
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
<br>
<br>
import Ember from 'ember';
let CustomError = function (errors, message = 'This error is result of my custom logic.') {
Ember.Error.call(this, message);
this.errors = errors || [
{
title: 'This is custom error.',
detail: message
}
];
}
CustomError.prototype = Object.create(Ember.Error.prototype);
export default CustomError;
{
"version": "0.4.10",
"dependencies": {
"jquery": "https://cdnjs.cloudflare.com/ajax/libs/jquery/1.11.3/jquery.js",
"ember": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.13.9/ember.debug.js",
"ember-data": "https://cdnjs.cloudflare.com/ajax/libs/ember-data.js/1.13.11/ember-data.js",
"ember-template-compiler": "https://cdnjs.cloudflare.com/ajax/libs/ember.js/1.13.9/ember-template-compiler.js"
}
}
@fidlip
Copy link

fidlip commented Mar 9, 2016

Thanks for your gist, it helps a lot. But I have tried it an realized there is one line missing: return this; Without that line it is impossible for me to use properties from original js error object (message and so on)

import Ember from 'ember';

let CustomError = function (errors, message = 'This error is result of my custom logic.') {
  Ember.Error.call(this, message);

  this.errors = errors || [
    {
      title: 'This is custom error.',
      detail: message
    }
  ];

  return this;
}

CustomError.prototype = Object.create(Ember.Error.prototype);

export default CustomError;

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment