Лучшая практика в JavaScript - использовать некоторую идиому для обнаружения ошибок, а не полагаться на try-catch. Легко обращается с TypeError:JavaScript: Как обнаружить неправильный URI?
if (typeof foo !== "number") {
console.log("That ain't a number!");
return;
}
И подобные идиомы с ReferenceError и RangeError.
Но как вы проверяете URIError перед использованием encodeURI() или decodeURI(), не помещая их в try-catch?
(Невозможно принять приемлемый ответ).