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"
}

规范

规范 状态 注释
ECMAScript 3rd Edition (ECMA-262)
URIError
Standard 初始定义
ECMAScript 5.1 (ECMA-262)
URIError
Standard  
ECMAScript 2015 (6th Edition, ECMA-262)
URIError
Standard  
ECMAScript Latest Draft (ECMA-262)
URIError
Draft  

浏览器兼容

Update compatibility data on GitHub
Desktop Mobile Server
Chrome Edge Firefox Internet Explorer Opera Safari Android webview Chrome for Android Firefox for Android Opera for Android Safari on iOS Samsung Internet Node.js
URIError Chrome Full support 1 Edge Full support 12 Firefox Full support 1 IE Full support 5.5 Opera Full support Yes Safari Full support Yes WebView Android Full support 1 Chrome Android Full support 18 Firefox Android Full support 4 Opera Android Full support Yes Safari iOS Full support Yes Samsung Internet Android Full support 1.0 nodejs Full support Yes

Legend

Full support  
Full support

参见