Я нахожусь в процессе сглаживания своей кодовой базы, чтобы ее можно было скомпилировать с помощью ADVANCED_OPTIMIZATIONS в компиляторе закрытия Google.
После правильной настройки среды отладки, необходимой для этой задачи (исходный файл карты, хром, упаковка скомпилированного файла js), я наткнулся на проблемы с попыткой перехвата. Похоже, что широкое использование операторов try/catch в моей кодовой базе имело для меня неприятные последствия.
Почти во всех методах и функциях я использую типичный оператор try { } catch(e) {ss.error(e);}, где ss.error() — это общий обработчик ошибок, который в зависимости от среды либо выводит отладочный материал, либо сообщает. вернуть исключения...
В процессе сглаживания моей кодовой базы, когда я получаю ошибку, которую мне нужно исправить, происходит то, что вместо того, чтобы Chrome сообщал о проблемном файле и строке, он указывает на обработчик ошибок ss.error(). Таким образом, у меня не осталось возможности отследить проблему. Однако функция ss.error() печатает источник проблемы:
Ошибка! тип: TypeError at Db (/jsc/compiled.js:547:246) msg: Невозможно вызвать метод 'ka' из неопределенного источника:
После того, как я получаю такие ошибки, я должен сделать два шага: 1. Поиграться с скомпилированным кодом в строке 547 char 246 и попытаться выяснить, к какой части моего нескомпилированного кода это относится... 2. После того, как я найду его, удалите блоки try/catch, чтобы я мог напрямую и более четко увидеть, что вызвало ошибку...
Я должен сказать, что мне не нравится этот рабочий процесс, и мне нужно найти альтернативу, которая позволит мне правильно перехватывать исключения и отлаживать мой скомпилированный и нескомпилированный код, сохраняя при этом здравомыслие =)
Я думал каким-то образом использовать информацию Line:CharPosition для запроса исходной карты и заставить функцию ss.error() выполнять сопоставление с моим нескомпилированным исходным кодом...
идеи?
//@ sourceMappingURL=src/scripts.source.map.js
? Вы ознакомились с Введением в исходные карты JavaScript? - person Christopher Peisert   schedule 21.05.2012