2012-05-11 4 views
1

저는 1800 라인 프로젝트를 스프레드 시트 스크립트 편집기에서 12 개의 '파일'로 나누었습니다. 찾기 기능은 활성 파일 내에서만 보입니다.스크립트 편집기/파일

어쨌든 글로벌 검색을 수행 할 수 있습니까?

프로젝트 내의 파일과 관련하여 오류가 발생하면 줄 번호가 참조되지만 파일 이름은 참조되지 않습니다.

어떤 파일에 오류의 원인이되는 행이 포함되어 있는지 확인하는 방법이 있습니까?

감사 댄

답변

2

글로벌 발견 할 수있는 방법이 없습니다. 찾기는 현재 파일을 볼 것입니다.

http://code.google.com/p/google-apps-script-issues/issues/detail?id=822

가 이동하십시오 그것을 투표를 스타 : 나는 거기 찾기를하고있는 이슈 트래커에서, 전체 프로젝트를 횡단 내가 제출 한 것이라고 교체하고 2011 년 9 월 다시 발행해야한다고 동의 이 문제에 대한 진행 상황을 통보받습니다.

오류 메시지와 함께보고되는 파일 이름의 문제도에서 이슈 트래커에서 제기 된

: 당신이 오류를 시도-잡을 필요가 오류를 발생시킨 파일을 확인하려면

http://code.google.com/p/google-apps-script-issues/issues/detail?id=747

+0

감사합니다. ScampMichael! 나는 둘 다 주연했다. – Dan

2

stacktrace를 구문 분석하십시오. 글로벌 발견에 대해

function yourCallingfunction() { 
    try { 
    //do your thing 
    } catch(err) { 
    stack = parseErr_(err) 
    Logger.log(stack); 
    throw stack; 
    } 
} 

//Try to parse errors stacktrace into a nicer format 
function parseErr_(e) { 
    var ret; 
    if(e !== undefined && e !== null && e.stack) { 
    ret = e.name +': '+e.message+' \nStacktrace: \n'; 
    var stack = e.stack.replace(/\n/g,'').match(/:\d+(\([^\)]+\))?/g); 
    for(var i in stack) 
     ret += stack[i].replace(/[\(\):]/g,'').split(/ /).reverse().join(':') + ' \n'; 
    } else 
    ret = e; 
    return ret; 
} 

, 문제는 발견되는 경우, 대체하지, 너무 해결 방법이있다 : 여기서 내가 할 것입니다. 이것 좀 봐 :

function showMe() { 
    for(var i in this) 
    Logger.log(this[i].toString()); 
} 

그러나 이것은 실제 해결책이 아닙니다. @ScampMichael과 연결된 문제에 별표를 표시해야합니다.

+0

이것은 매우 흥미로운 코드입니다. 감사합니다. Henrique! 나는이 몇 줄의 코드에서 많은 것을 배웠다. 나는 이것과 관련된 두 가지 이슈를 주연시켰다. – Dan

+0

@Henrique 왜 당신은 스택을 던져 버리고 당신이 잡은 잘못을 던지지 않습니까? –

+0

@PeterHerrmann 그래서 스택을보기 위해 스크립트 로그를 열 필요가 없습니다. 메시지 바로 위에 있습니다. 당연히 스택에서만 마지막 함수에서이 작업을 수행 할 때 오류가 발생합니다. 내 트리거와 "완료된"스크립트에서는 대개 나에게 이메일을 보내고 현재 얻을 수있는 모든 상태를 이메일로 보냅니다. –