2012-10-20 3 views
0

JavaScript 응용 프로그램에서 작업 중이고 오류를 수정하려고하는데 찾을 수 없습니다. 여기에 내가 가진 것이있다.Javascript : 해당 번호를 알고있는 라인의 내용을 표시합니다.

function my_function (txt) { 
    try { 
     return eval('('+ txt + ')'); 
    } 
    catch(e) { 
     alert(e.lineNumber); 
     return eval(txt); 
    } 

파일의 내용을 함수에 전달하고 있는데이 파일에 문제가있는 것 같습니다. 문제는이 라인

  alert(e.lineNumber); 

항상 내가 오른쪽 라인을 편집하고 있습니다 있는지 확인하려면, 그래서 내가 파일의 시작 부분에 줄을 추가 심지어 같은 수를 반환합니다. 이를 위해 오류가있는 행의 내용을 표시하려고합니다.

도와주세요.

답변

0

당신은 기본적으로 두 가지 경우가 있습니다 e.stack

.... 
catch(e) { 
     alert(e.lineNumber); 
     console.log(e.stack) 
     return eval(txt); 
    } 
0

를 사용하여 스택 트레이스 인쇄 할 수 있습니다 - 그것은 다음 오류가 "평가"전화의 위치로보고됩니다 구문 오류 인 경우 그 - 의미 론적 오류 (구문 분석했지만 실행시 실패 함) 인 경우 http://eriwen.com/javascript/js-stack-trace/을보고 브라우저 간 스택 덤프에 대한 아이디어를 얻으십시오 ("소스"파일의 위치가 아님).

첫 번째 경우를 디버깅하려면 파일 내용을 캡처하고 자체적으로 파싱 (아마도 node 또는 jsl 사용)해야합니다.

나는 당신이 무엇을하려고하는지 잘 모르지만, 코드 샘플이 몇 가지 질문을 제기한다고 말하고 싶습니다 (왜 eval이 JSON.parse가 아닌지, 파일을 읽은 다음 eval을 포함하고 함수를 호출하는 대신 , 두 번째 평가와 함께 무엇입니까).

0

필요한 경우 console.log (txt)을 사용하여 출력을 파일에 붙여 넣습니다. 해당 파일의 맨 위에 <script>을 넣고 하단에는 </script>을 넣습니다. 파일 이름은 .html으로 끝납니다. 이제 해당 파일 아이콘을 두 번 클릭하십시오. 이렇게하면 브라우저를 실행하여 스크립트를 읽고 구문 오류를 브라우저 콘솔에 출력하여 행 번호를 표시합니다.

관련 문제