По мере чтения Флэнагана на разделе с исключениями возникли вопросы.
Я не очень понял когда нужно использовать какие-то классы в исключениях, когда не нужно. В книге написано: "если имеется соответствующий блок catch", а до этого не было написано, что есть несоответствующие блоки catch. Я полагаю, catch должны быть разными, чтобы соответствовать разным исключениям, но не знаю как исключения и catch должны быть описаны, чтобы соответствовать друг другу.
Предположил:
var grom = {};
var ololo = {};
try
{
throw new grom();
}
catch(ololo e){alert('ololo e');}
catch(grom e){alert('grom e');}
catch(e){alert('e');}
Chromium выдаёт "Uncaught SyntaxError: Unexpected identifier" на первом блоке catch. Закомментирую первый - выдаёт на втором.
Гуглю всякие статьи, везде используют один блок catch без указания какого-либо класса. Например catch(e) и танцуют вокруг e.
Так может в JS вообще нельзя ассоциировать исключение с блоком catch по классам?