Возможно ли получить в объекте «e» (error) переменную с ошибкой при использовании try catch?
Массивы в JS динамические, выйти за их пределы невозможно. Отлов undefined — ну ок, а что если в массиве и лежит undefined?
Проще следить, чтобы индекс не превышал заданное число, с помощью обертки (обернув весь массив или сделав функцию для доступа):var myArr = [1, 2, 3];
myArr.get = function (index) {
    if (index > this.length - 1) {
        throw new RangeError();
    } else {
        return this[index];
    }
}
Можно попытаться обратиться к какому-нибудь свойству в А, которое присуще ожидаемому типу значения.
Что-то типа:var A = Map[j + 100];
//...
A.toExponential(); // здесь вылетит, если не число,
A.chatAt(0); // здесь вылетит, если не строка,
и другие прототипные методы для других типов.