는 ucted JavaScript 오류가 발생했을 때 트리거되는 브라우저 이벤트입니다. 클라이언트 오류를 쉽게 로그어 서버에보고하는 방법을 제공합니다. 모든 최신 브라우저는이 이벤트를 지원하지만 구현 세부 사항은 다양합니다.
window.onerror
window.onerror
window.onerror
- "uncught referenceError : foo가 정의되지 않은"오류와 관련된 메시지 " "/dist/app.js"와 같은 오류와 관련된 스크립트 또는 문서의 URL - 줄 번호 (사용 가능한 경우) - 열 번호 (사용 가능한 경우) -이 오류와 관련된 오류 객체 (사용 가능한 경우)
처음 네 매개 변수는 어떤 스크립트, 행 및 열이 발생하는지 알려줍니다. 마지막 매개 변수 인 오류 객체는 아마도 가장 가치가있을 것입니다. 이유를 이해합시다. window.onerror
귀중한 부분은
비 표준 속성 : 입니다. 이 스택 속성은 오류가 발생할 때 각 프로그램 프레임의 소스 위치를 알려줍니다. 오류 스택 추적은 디버깅의 핵심 부분이 될 수 있습니다. 비표준이지만이 속성은 모든 최신 브라우저에서 제공됩니다.
Error.prototype.stack
window.onerror = function (msg, url, lineNo, columnNo, error) { // ... 处理错误 ... return false; }
<<> 브라우저 호환성
<code>"Error: foobar\n at new bar (<anonymous>:241:11)\n at foo (<anonymous>:245:5)\n at <anonymous>:250:5\n at <anonymous>:251:3\n at <anonymous>:267:4\n at callFunction (<anonymous>:229:33)\n at <anonymous>:239:23\n at <anonymous>:240:3\n at Object.InjectedScript._evaluateOn (<anonymous>:875:140)\n at Object.InjectedScript._evaluateAndWrap (<anonymous>:808:34)" </anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></code>
<<>는 브라우저에서 잠시 동안 주변에있었습니다. IE6 및 Firefox 2와 같은 오래된 브라우저에서 찾을 수 있습니다.
를 구현한다는 것입니다.
다음은 대부분의 브라우저에서 OnError로 전달되는 매개 변수 테이블입니다.<code>Error: foobar at new bar (<anonymous>:241:11) at foo (<anonymous>:245:5) at callFunction (<anonymous>:229:33) at Object.InjectedScript._evaluateOn (<anonymous>:875:140) at Object.InjectedScript._evaluateAndWrap (<anonymous>:808:34) </anonymous></anonymous></anonymous></anonymous></anonymous></code>
에 대한 제한된 지원은 놀라운 일이 아닐 수 있습니다. 그러나 Safari가 Safari 10 (2016 년에 발표)까지 오류 객체에 대한 지원을 추가하지 않았다는 사실에 놀랄 것입니다. 또한 여전히 스톡 Android 브라우저 (현재 Chrome Mobile으로 대체)를 사용하는 레거시 모바일 장치는 여전히 존재하며 오류 객체가 전달되지 않습니다. onerror
onerror
예 : <🎜 🎜>
invoke
window.onerror = function (msg, url, lineNo, columnNo, error) { // ... 处理错误 ... return false; }
를 삽입했으며, 또한 시도/캐치 블록으로 함수를 래과하여 가능한 한 많은 오류 정보를 캡처했습니다. invoke
<code>"Error: foobar\n at new bar (<anonymous>:241:11)\n at foo (<anonymous>:245:5)\n at <anonymous>:250:5\n at <anonymous>:251:3\n at <anonymous>:267:4\n at callFunction (<anonymous>:229:33)\n at <anonymous>:239:23\n at <anonymous>:240:3\n at Object.InjectedScript._evaluateOn (<anonymous>:875:140)\n at Object.InjectedScript._evaluateAndWrap (<anonymous>:808:34)" </anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></anonymous></code>
<🎜 🎜> <<> 요약
<code>Error: foobar at new bar (<anonymous>:241:11) at foo (<anonymous>:245:5) at callFunction (<anonymous>:229:33) at Object.InjectedScript._evaluateOn (<anonymous>:875:140) at Object.InjectedScript._evaluateAndWrap (<anonymous>:808:34) </anonymous></anonymous></anonymous></anonymous></anonymous></code>
어떻게
window.onerror
누락 된 스택 트레이스 window.onerror
그게 다야! 행복한 오류 모니터링. 와 Try-Catch의 차이점은 무엇입니까?
및 Try-Catch는 모두 JavaScript의 오류 처리에 사용되지만 다르게 작동합니다. Try-Catch 문을 사용하면 시도 블록에 오류를 던질 수있는 코드를 포장 한 다음 캐치 블록의 오류에 응답하여 오류를 직접 처리 할 수 있습니다. 반면에
를 사용하는 방법은 무엇입니까? 를 사용하려면
를 사용하려면 오류가 발생할 때 호출 될 함수를 정의해야합니다. 이 함수는 오류 메시지, 오류가 발생한 URL, 줄 번호, 열 번호 및 오류 객체의 5 가지 매개 변수를 가져와야합니다. 이 기능 내에서 필요에 따라 오류를 처리 할 수 있습니다. 예를 들어, 콘솔에 오류를 기록하거나 서버에 보고서를 보내거나 사용자에게 메시지를 표시 할 수 있습니다.window.onerror
모든 유형의 JavaScript 오류가 잡힐 수 있습니까?
window.onerror
는 강력한 오류 처리 도구이지만 몇 가지 제한 사항이 있습니다. 가장 끊임없는 런타임 오류를 포착 할 수는 있지만, 트리 캐치 블록에 던져지고 잡힌 예외를 포착 할 수는 없습니다. 또한 네트워크 오류 또는 CORS 오류와 같은 특정 유형의 오류가 이벤트를 트리거하지 않을 수 있습니다. window.onerror
오류 객체는 함수로 전달 된 다섯 번째 매개 변수입니다. 오류 메시지, 오류 이름 및 스택 추적을 포함하여 오류에 대한 정보가 포함되어 있습니다. 이 객체를 사용하여 오류에 대한 자세한 정보를 얻을 수 있으며, 이는 디버깅 또는 오류보고에 매우 유용합니다.
window.onerror
window.onerror
를 사용하여 오류를 서버에보고 할 수 있습니까?
CORS 오류를 처리하기 위해
를 사용하는 방법은 무엇입니까? window.onerror
이벤트 핸들러에 세부 사항이 제공되지 않습니다. 그러나 CORS 오류가 발생할 수있는 특정 네트워크 요청에 오류 처리기를 추가하여 이러한 오류를 처리 할 수 있습니다.
window.onerror
를 사용할 때는 사용자 경험을 방해하지 않는 방식으로 오류를 처리해야합니다. 사용자에게 기술 오류 메시지를 표시하지 않아야합니다. 대신, 친숙한 오류 메시지를 표시하거나 조용히 오류를 기록하는 것을 고려하십시오. 또한 오류 처리 코드의 성능 영향을 확인하십시오. 예를 들어, 서버에 오류 보고서를 보내는 경우 기본 스레드를 차단하지 않도록 비동기 적으로 수행하십시오.
위 내용은 Window.onerror를 사용하여 JavaScript 오류를 캡처하고보고합니다의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!