URIError 对象用来表示以一种错误的方式使用全局URI处理函数而产生的错误。
new URIError([message[, fileName[, lineNumber]]])
messagefileName 【非标准内联】lineNumber 【非标准内联】当向全局 URI 处理函数传递一个不合法的URI时,URIError 错误会被抛出。
URIError.prototype虽然全局 URIError 对象没有任何自己的方法,但是它能通过原型链继承一些方法。
URIError 实例URIError.prototype.constructorURIError.prototype.messageURIError 应该提供其自己专属的 message 属性,但是在 SpiderMonkey 中,该属性继承自 Error.prototype.messageURIError.prototype.nameError。URIError.prototype.fileNameError。URIError.prototype.lineNumberError。URIError.prototype.columnNumberError。URIError.prototype.stackError。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 |
| Desktop | Mobile | Server | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
URIError | Chrome Full support Yes | Edge Full support Yes | Firefox Full support 1 | IE Full support Yes | Opera Full support Yes | Safari Full support Yes | WebView Android Full support Yes | Chrome Android Full support Yes | Edge Mobile Full support Yes | Firefox Android Full support 4 | Opera Android Full support Yes | Safari iOS Full support Yes | Samsung Internet Android Full support Yes | nodejs Full support Yes |