2011-04-18 5 views
2

JavaScript 배치와 관련하여 제가하고 싶은 것이 있습니다. 정말 실용적인 방법을 찾고 있습니다. , 알고을 개발팀을하자보다는 :JavaScript try/catch 및 ajax보고

내가 여기에 슈퍼 인상이나 복잡하지 않아야 내 코드에 try/catch을 실행하는 데 좋아하지만 것 내가 실패가있을 때 어떻게하고 싶은거야 그 일회성 고객이 휴식 시간에 이메일을 쓸 수있는 충분한 시간을 보냅니다.

내 초기 생각은 내가 어떤 임의의 데이터를 (즉, report.submit(issue_data);) 걸릴 코드 수있는 지원 제출 오브젝트를 작성하고 자동으로받은 편지함 또는 데이터베이스 또는 에 데이터를 추가 내 서버에 아약스 호출을 만드는 것이 었습니다 뭐든간에. 나는 ... 더 완벽하게 일을하고, 여기에 보이지 않는 결함을 해결하는 등 더 나은 솔루션이 있는지보고 싶어하지만

try { 
    some_code(); 
} catch(e) { 
    do_instead(); 
    report.submit(issue_data); 
    report.update(); //Could perhaps show the users a history of errors 
} 

:

는 내가 그것을 같이 할 수 있다고 생각 제출 시스템의 실패를 다루는 방법에 대한 조언, 아마도 흥미 진진한 방법으로 프로토 타입을 사용하는 것 등등.

또한 여기 내 간단한 솔루션에는 모든 것을 반쯤 쓸모 없게 만들 수있는 많은 제한이 있습니다. 실패한 코드의 특정 부분, 줄 번호, 실패를 만드는 조건, 브라우저 버전 등을 나타낼 수 없습니다.

+0

나에게 꽤 좋아 보인다. 클라이언트 (서버 코드 필요 없음)에서 액세스 할 수 있기 때문에 CouchDB와 같은 것을 사용할 것입니다. – tjameson

+0

첫 번째 게시 이후로 내 솔루션에 대한 제한 사항을 닌자 편집했습니다. – Incognito

+0

전화를 처리하는 함수를 만들 수 있습니다. 코드에서 뭔가 나쁜 일이 발생할 때마다 호출 할 수 있습니다. 이렇게하면 더 자세한 정보를 제공 할 수 있습니다. JSON.stringify를 사용하여 예외를 모두 처리하고 게시하십시오. – tjameson

답변

2

큰 문제는 이러한 보고서를 다시 가져올 수 있어야한다는 것입니다. 우리 프로젝트에서 로거 REST 리소스를 가지고 있고 log4javascript'sAjaxAppender을 사용했습니다.

1

조금 더 정보 :

}catch(e){ 
     alert(e.description); 
} 

하지만 구현은 나에게 아주 잘 보이는 것을 내 친구가 아닌 다른.