Если вам нужен номер строки ошибки в IE, я почти уверен, что ваш единственный вариант - window.onerror
, потому что, когда IE выдает исключение в блоке try...catch
, он не содержит номер строки. Тем не менее, каждый браузер имеет свою реализацию исключения, сгенерированного в блоке try...catch
- некоторые обеспечивают полную трассировку стека, которую вы не можете получить из window.onerror
ни в одном браузере. Я не знал о специфической причуде, которую вы обнаружили, но я знаю, что обработка исключений - почти самая непоследовательная вещь во всех браузерах, и она даже не остается неизменной в каждом браузере; если я правильно помню, Opera изменила свой класс исключений в Opera 10 и сломала что-то, что я написал для анализа исключения в Opera.
Достаточно сказать, что вы обнаружили ад, который обрабатывает исключения в JavaScript, и единственный способ обойти это - обнаружение и ветвление браузера соответственно, чтобы сделать правильную вещь для каждого браузера. Я искал хорошую библиотеку, чтобы иметь дело с исключениями в JavaScript и абстрагироваться от моих отличий в браузере, но пока я не нашел ее.