일반적인 질문,하지만 문제의 코드는 다음과 같습니다 : -javascript에서 호출 스택을 동적으로 볼 수있는 방법이 있습니까?
MyObj.prototype.err = function(msg) { ... throw(msg); }
그렇게 던져,
if(mybad) this.err('my message');
싶습니다
가 발생합니다 오류 루틴을 가지고는 예외 사항을 처리합니다 err()은 함수가 호출 스택에 있는지 여부에 따라 다르게 동작합니다. funcA 상류 인 경우, 사용자에게 경고 및 정지 싶습니다funcA() -> func2() -> func3() -> err()
funcB() -> func3() -> err()
대
예를 들어, 수 있었다; 반면에 funcB라면, 콘솔에 메시지를 쓰고 계속하고 싶습니다. 내가
var err = function(msg) {
// ...
var error = new Error();
var stack = error.stack;
// Do some string manipulation with stack
// mayThrow = 'funcB is in stack'
if (mayThrow) {
throw(msg);
}
};
수 :
은 크롬에서
+1 "경험할 수있는 상태 공간을 생성 (유지)하는 불운" –
[Here] (http://eriwen.com/javascript/stacktrace-update/)는 흥미로운 블로그 게시물입니다. 그러나, 나는 당신의 마지막 문장에 동의하기 때문에, 이것은 "불운"접근법처럼 보이고, 확실히 느릴 것입니다. – Pointy