2017-10-27 1 views
3

다음 코드를 고려하시기 바랍니다 약속 내부 예외에 디버거를 일시 정지하지 않습니다 ... 그러나 다음과 같은 오류 출력 만 표시됩니다.VS-코드

"ReferenceError: breaksomething is not defined"

(일시 중지하지 않음). 예외가 발생하면 디버거가 예상대로 일시 중지되며 문제는 Promise 범위 내에 있습니다. 나는 모두 예외를 가지고있다.잡히지 않은 예외은 중단 점에 체크했다.

내가 사용하고 :
비주얼 스튜디오 코드 1.17.2
노드 8.8.1
검사기 디버거

+0

가 어디 추가 쳤다 때 예상대로

global.Promise = require("bluebird"); 

...이 기본 nodejs 약속을 무시하고 파괴한다 'breaksomething()'에 대한 정의? – Tatarin

+0

정의가 없습니다 - 예외를 만들고 싶습니다. – Pierre

+1

Promise가 네이티브 라이브러리에 구현되어 있고 해당 함수의 호출이 해당 네이티브 라이브러리에서 발생하기 때문에 이런 현상이 발생합니다. 예외는 거기에 되돌려 보내 지므로 VSC에 걸리지 않습니다 –

답변

0

이 문제가 왜 발생하는지 아직 명확하지 않지만 해결 방법을 찾았습니다. 그냥 블루 버드 설치하고 응용 프로그램의 초기화 코드에 다음을 추가합니다 : "모든 예외는"

4

UPDATE latest update on a known issue 을 마이크로 소프트 팀은 VS 코드에서 알려진 문제였다.

당신은 내가 약속 라이브러리는 네이티브 코드에서 구현되기 때문에 이런 일이 발견 디버깅 후

debugger works without exceptions

+0

이것은 올바르지 않습니다. 1)이 링크는 VS 코드의 어떤 문제도 지적하지 않습니다 - 예외를 위반하지 않는 방법에 대한 간단한 설명 2) 첨부 한 이미지에 중단 점이 있습니다. 중단 점은 예외 눈금에 관계없이 중단되고 실행이 중지됩니다. – Pierre

+1

@ 피에르 오늘은 귀하의 문제를 찾을 수 있었던 유일한 해결책입니다. – Tatarin

+0

질문에 대한 답변을 얻지 못했습니다. 해결책이 아닙니다! 중단 점에서 디버거를 중지하는 방법을 나에게 알려주고 있습니다!문제는 아닙니다. 문제는 예외에서 디버거를 중지하는 것입니다. – Pierre

1

을 작업 할 수 있도록 VS 코드에 브레이크 포인트 설정에서 All ExceptionsUncaught Exceptions의 선택을 취소해야

Promise를 만들면 내부의 함수가 실제로 네이티브 코드에 의해 호출되고 예외가 돌아갑니다. 이것은 VS 디버거에 의해 잡히지 않은 이유 중 하나 일 수 있습니다.

그렇게 할 수 있습니까? JetBrains의 WebStorm은 그러한 예외를 깨뜨릴 수도 있습니다. 이제는 VS 코드가 어떻게 작동하는지, 그리고 VS 코드가이를 수행 할 수없는 이유는 내 이해를 넘어서는 것입니다. VS 코드에 대한 문제를 열어 WebStorm이이를 수행하도록하는 것이 가장 좋습니다. 따라서 기술적으로 이러한 예외를 깨는 것이 가능합니다.

+0

이것은 나에게 정확하지 않지만, 시도하고 싶다면 블루 버드로 시도하십시오. 이전에 vscode에서 성공적으로 디버깅했음을 지적하고 싶습니다 (그러나 문제의 원인이나 해결 방법은 모르겠지만 죄송합니다). –

+0

@BenjaminGruenbaum, 디버깅 문제가 아닙니다. 그것은 예외에 대한 자동 중단 점에 관한 것입니다. –