Javascript for
.. in
Циклы всегда возвращают индекс / имя, а не значение. Чтобы получить то, что вы хотите, вы должны использовать:
var myArr = [{a:1, b:2}, {c:3, d:4}];
for (var index in myArr) {
console.log( myArr[index] );
}
Однако, как уже было сказано, for
.. in
Оператор следует использовать с осторожностью, и он не предназначен для использования с массивом. Вы должны использовать цикл for
вместо
var myArr = [{a:1, b:2}, {c:3, d:4}];
for( var i=0, l=myArr.length; i<l; i++ ) {
console.log( myArr[i] );
}
Я не знаю способа отключить блоки перехвата, но то, что вы пытаетесь достичь, можно легко сделать с помощью параметра VS в диалоговом окне исключений:
Debug -> Exceptions -> CLR Exceptions -> Check the "Thrown" checkbox.
Таким образом, VS немедленно сломается, когда перед запуском любого блока catch генерируется исключение.
Вам не нужно отключать все блоки перехвата, чтобы определить, откуда впервые возникло исключение - в отладчике. Если вы откроете диалоговое окно «Исключения» в VS, вы можете настроить отладчик для перехвата исключения, когда оно не обрабатывается (по умолчанию) или когда оно создается впервые. Это самый простой и наименее навязчивый способ сделать это.
Диалоговое окно «Исключения» доступно из меню «Отладка».
Вы должны использовать меню «Отладка»> «Исключения», чтобы вызвать диалоговое окно «Исключения», и установить флажок «Выброшено» для любого вида исключения, из-за которого вы хотите, чтобы среда разработки прервалась во время отладки.
Вы обнаружите, что VS прерывается, когда выбрасывается конкретное исключение (или любой из его подклассов) до того, как произойдет обработка исключения.
Это решит вашу проблему.
What I find often more interesting is the Stack window.
When in debug mode, running a project, go
Debug => Window => Call stack (Ctrl+d, C)
Now you can see what steps where take to come here and you can d-click them to go to the code line. I find it really handy.