URIError() constructor

The URIError() constructor creates an error when a global URI handling function was used in a wrong way.

Syntax

new URIError()
new URIError(message)
new URIError(message, options)
new URIError(message, fileName)
new URIError(message, fileName, lineNumber)

URIError()
URIError(message)
URIError(message, options)
URIError(message, fileName)
URIError(message, fileName, lineNumber)

Note: URIError() can be called with or without new. Both create a new URIError instance.

Parameters

message Optional

Human-readable description of the error.

options Optional

An object that has the following properties:

cause Optional

A property indicating the specific cause of the error. When catching and re-throwing an error with a more-specific or useful error message, this property can be used to pass the original error.

fileName Optional Non-Standard

The name of the file containing the code that caused the exception.

lineNumber Optional Non-Standard

The line number of the code that caused the exception.

Examples

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

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

Specifications

Specification
ECMAScript Language Specification
# sec-nativeerror-constructors

Browser compatibility

BCD tables only load in the browser

See also