在Ember中创建自定义错误类的正确方法是什么,以及将错误类定义文件放在Ember CLI中的位置?
我发现的所有代码示例都在乱用JavaScript对象原型。为什么我不能像正常的Ember对象一样调用Ember.Error.extend?
自定义错误类的正确位置应该在app / errors /目录下,但似乎Ember CLI没有解析这些文件。
答案 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:“此错误是我的自定义逻辑的结果。”,名称: “错误” ...}