如何在Vue.js中正确抛出错误?

时间:2017-05-18 09:50:08

标签: javascript vue.js vuejs2 vue-component

我正在构建一个SVG组件,它采用没有扩展名的文件名。我想强制执行此操作并在使用扩展名时抛出错误。

由于我有一个ES6编译器,我只是使用它:

if (this.name.includes('.svg')) {
    throw 'Do not use the svg extension';
}

这是在Vue.js中抛出错误的正确方法还是有更好的方法?目前,当我实施此功能并测试时,我收到2个警告。

我正在使用堆栈跟踪和我自己的错误获得[Vue警告]。我最好只想在控制台中抛出一条简单的错误信息来表示用户做错了什么。

有关这种方法的任何想法或一般在Vue.js或javscript中处理这个问题的提示吗?

2 个答案:

答案 0 :(得分:6)

您应该使用标准TypeError:

  

创建一个实例,表示当变量或参数不是有效类型时发生的错误。

throw new TypeError("Do not use the svg extension", filename)

TypeError-MDN

答案 1 :(得分:-1)

  

当像函数一样使用Error时,如果不使用new,它将返回一个Error对象。因此,仅对Error的调用将产生与通过new关键字构造Error对象相同的输出。

throw new Error('Error text.');
  

除了通用的Error构造函数外,JavaScript中还有其他七个核心错误构造函数。有关客户端异常,请参见异常处理语句。

     

EvalError   创建一个实例,该实例表示与全局函数eval()有关的错误。

     

内部错误   创建一个实例,该实例表示在JavaScript引擎中引发内部错误时发生的错误。例如。 “递归过多”。

     

RangeError   创建一个表示错误的实例,该错误在数字变量或参数超出其有效范围时发生。   ReferenceError   创建一个实例,该实例表示取消引用无效引用时发生的错误。

     

语法错误   创建一个实例,该实例表示在eval()中解析代码时发生的语法错误。

     

TypeError   创建一个实例,该实例表示当变量或参数的类型无效时发生的错误。

     

URIError   创建一个代表错误的实例,该错误在将encodeURI()或decodeURI()传递给无效参数时发生。