[JavaScript] URI malformed / malformed URI sequence エラーの雑な対応方法

JavaScript で URI malformed / malformed URI sequence エラーの雑な対応方法をご紹介します。

JavaScript

URI malformed / malformed URI sequence の概要

メッセージ

URIError: malformed URI sequence (Firefox)
URIError: URI malformed (Chrome)

エラータイプ

URIError

何がうまくいかなかったのか?

URI エンコードかデコードが成功しませんでした。decodeURI か encodeURI、encodeURIComponent、decodeURIComponent 関数の引数が無効のため、関数は適切にエンコード、またはデコードできませんでした。

URI malformed / malformed URI sequence エラーの雑な対応方法

try…catch 文で雑に処理します。

// encode 済みの URL パラメータを decode する
decodeURIParams(encodedURIParams) {
  try {
    return decodeURIComponent(encodedURIParams);
  } catch (err) {
    return ''; 
  }
}

以上、URI malformed にたまに遭遇してしまう現場からお送りしました。