如何在Ember中创建自定义错误类?

时间:2015-09-08 11:07:26

标签: ember.js ember-cli

在Ember中创建自定义错误类的正确方法是什么,以及将错误类定义文件放在Ember CLI中的位置?

我发现的所有代码示例都在乱用JavaScript对象原型。为什么我不能像正常的Ember对象一样调用Ember.Error.extend?

自定义错误类的正确位置应该在app / errors /目录下,但似乎Ember CLI没有解析这些文件。

1 个答案:

答案 0 :(得分:9)

例如在app/errors/目录中创建自定义文件,并将其命名为custom-error.js

使用以下代码作为基础来声明自定义错误类:

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;

然后,如果你想在某个地方使用这个错误:

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);
  })
});

console.log(customErrorInstance)的结果是:

  

CustomError {description:undefined,fileName:undefined,lineNumber:   undefined,message:“此错误是我的自定义逻辑的结果。”,名称:   “错误” ...}