URIError

URIError 对象用来表示以一种错误的方式使用全局URI处理函数而产生的错误。

语法

new URIError([message[, fileName[, lineNumber]]])

参数

message
选填。易于理解的错误描述。
fileName 【非标准内联】
选填。包含造成异常的代码的文件名称。
lineNumber 【非标准内联】
选填。造成异常的代码行号。

描述

当向全局 URI 处理函数传递一个不合法的URI时,URIError 错误会被抛出。

属性

URIError.prototype
允许向一个 URIError 对象添加额外的属性。

方法

虽然全局 URIError 对象没有任何自己的方法,但是它能通过原型链继承一些方法。

URIError 实例

属性

URIError.prototype.constructor
声明创建实例原型(prototype)的方法。
URIError.prototype.message
错误信息。虽然 ECMA-262 规范指出 URIError 应该提供其自己专属的 message 属性,但是在 SpiderMonkey 中,该属性继承自 Error.prototype.message
URIError.prototype.name
错误名称。继承自 Error
URIError.prototype.fileName
产生该错误的代码所在文件的路径。继承自 Error
URIError.prototype.lineNumber
产生该错误的代码所在行的行号。继承自 Error
URIError.prototype.columnNumber
产生该错误的代码所在列的列号。继承自 Error
URIError.prototype.stack
堆栈记录。继承自 Error

方法

虽然 URIError 的实例通过原型链(prototype chain)继承了一些方法。

示例

捕获一个 URIError 实例

try {
  decodeURIComponent('%');
} catch (e) {
  console.log(e instanceof URIError); // true
  console.log(e.message);             // "malformed URI sequence"
  console.log(e.name);                // "URIError"
  console.log(e.fileName);            // "Scratchpad/1"
  console.log(e.lineNumber);          // 2
  console.log(e.columnNumber);        // 2
  console.log(e.stack);               // "@Scratchpad/2:2:3\n"
}

创建一个 URIError 实例

try {
  throw new URIError('Hello', 'someFile.js', 10);
} catch (e) {
  console.log(e instanceof URIError); // true
  console.log(e.message);             // "Hello"
  console.log(e.name);                // "URIError"
  console.log(e.fileName);            // "someFile.js"
  console.log(e.lineNumber);          // 10
  console.log(e.columnNumber);        // 0
  console.log(e.stack);               // "@Scratchpad/2:2:9\n"
}

上篇: TypeError