JavaScript/URIError
URIError は、URI(Uniform Resource Identifier)関連の関数が不正なパラメータで使用された場合に発生するエラーオブジェクトです。このエラーは、encodeURI()、decodeURI()、encodeURIComponent()、decodeURIComponent() などの関数で不正な入力を処理しようとした場合に投げられます[1]。
構文
編集new URIError() new URIError(message) new URIError(message, options)
message: エラーの説明を示す文字列。省略可能。options: エラーに関する追加情報を含むオブジェクト。causeプロパティを含めることができます。省略可能。
例
編集不正なURIデコードによるURIErrorの発生
編集以下のプログラムは、不正なシーケンスをデコードしようとした際に URIError が発生する例を示しています。
try { decodeURIComponent('%'); // 不完全なパーセントエンコーディングシーケンス } catch (e) { console.log(e instanceof URIError); // true console.log(e.message); // "URI malformed" }
このプログラムでは、decodeURIComponent() 関数で不完全なパーセントエンコーディングシーケンスをデコードしようとしているため、URIError が発生します。
不正なURIエンコードによるURIErrorの発生
編集以下のプログラムは、エンコードできない文字をエンコードしようとした際に URIError が発生する例を示しています。
try { // サロゲートペアの前半部分のみを含む不正なUTF-16文字列 encodeURI(String.fromCharCode(0xD800)); } catch (e) { console.log(e instanceof URIError); // true console.log(e.message); // "URI malformed" }
このプログラムでは、サロゲートペアの前半部分のみを含む不正なUTF-16文字列をエンコードしようとしているため、URIError が発生します。
注意点
編集脚註
編集- ^ これは、URI操作関数の使用時に不正な文字列が検出されたことを示すために使用されます。