통사론
newrelic.noticeError(error object $error, [object $customAttributes])
앱 작동을 방해하지 않고 브라우저 오류를 식별합니다.
요구 사항
Browser Pro 또는 Pro+SPA 에이전트
- 사용자 정의 속성 인수에는 에이전트 v1118 이상이 필요합니다.
newrelic.noticeError()
에이전트 v499 이상이 필요합니다.NREUM.noticeError()
에이전트 v411 이상이 필요합니다.
npm을 사용하여 브라우저 에이전트를 설치하는 경우
BrowserAgent
클래스를 인스턴스화할 때jserrors
기능을 활성화해야 합니다.features
배열에 다음을 추가합니다.import { JSErrors } from '@newrelic/browser-agent/features/jserrors';const options = {info: { ... },loader_config: { ... },init: { ... },features: [JSErrors]}자세한 내용은 npm 브라우저 설치 설명서를 참조하세요.
설명
이 호출을 사용하여 앱에서 처리된 오류 또는 기타 기타 오류를 확인하거나 기록합니다. 이는 오류를 포착하고 처리했지만 여전히 앱 작동을 방해하지 않고 오류를 식별하려는 경우에 유용합니다.
또한 API를 사용하면 스크립트 초기화 중 또는 인라인 이벤트 핸들러에서 발생하는 오류와 같이 세부 정보 없이 보고되는 오류를 확인할 수도 있습니다. 오류는 뉴렐릭이 일반적으로 감지하는 다른 오류와 함께 Errors 페이지 에 표시됩니다. 또한 JavaScriptError
이벤트 로 기록됩니다. 예를 들어:
var err = new Error('Report caught error to New Relic');newrelic.noticeError(err);
참고: 단일 요청에서 1000개 이상의 JavaScriptError
이벤트가 전송되면 1000개의 개별 이벤트만 기록됩니다. 그러나 총 이벤트 수는 내부적으로 보존되며 EXTRAPOLATE
쿼리 절 을 사용하여 액세스할 수 있습니다.
매개변수
매개변수 | 설명 |
---|---|
오류 개체 | 필수의. 브라우저의 Errors 페이지 에서 데이터를 분석할 때 사용할 수 있는 의미 있는 오류 메시지를 제공하세요. |
| 선택 과목. 사용자 정의 속성을 나타내는 이름/값 쌍을 포함하는 객체입니다. |
예
중요하지 않은 오류
이 예는 newrelic.noticeError
API를 사용하여 애플리케이션을 방해하지 않으려는 발견된 오류를 보고하는 방법을 보여줍니다. 이는 중요하지 않은 오류가 사용자 경험에 영향을 미치지 않지만 여전히 개발자에게 보고하려는 경우에 유용합니다. 예제 코드는 잘못된 JSON의 경우 기본 foo
객체를 안전하게 사용합니다.
var foo;try { foo = JSON.parse('{ "bar"');} catch (err) { // Report caught error to New Relic newrelic.noticeError(err);
foo = { bar: 'default value' };}alert(foo.bar);
선택적 오류가 있는 콜백
이 예제는 Node.js에서 대중화되고 Browserify 개발에서 일반적으로 사용되는 오류 및 응답 패턴 콜백을 사용할 때 New Relic에 오류를 보고하는 방법을 보여줍니다. alert(body);
을 자신의 관련 메시지로 바꿀 수 있습니다.
var xhr = require('xhr');xhr('http://localhost:8080', function(err, resp, body) { // Report unthrown error to New Relic if (err) return newrelic.noticeError(err); // Handle successful response alert(body);});
프라미스 기반 API 예시
Promise는 비동기식 상호 작용을 처리하기 위한 단일 패턴을 제공하여 비동기식 오류를 쉽게 처리할 수 있도록 합니다. 그러나 이렇게 하면 오류를 완전히 무시할 수 있으므로 개발자가 볼 수 없는 방식으로 응용 프로그램이 손상됩니다. 이 예제에서는 이러한 비동기 오류를 New Relic에 보고하여 간과되지 않도록 합니다.
var rest = require('rest');rest('/').then(function(res) { // Handle successful response alert(res.entity);}, function(err) { // Report unthrown error to New Relic newrelic.noticeError(err);});
사용자 정의 속성 캡처 예
try { // code that throws an error} catch (err) { newrelic.noticeError(err, { attribute1: 'value1', attribute2: 2 });}
브라우저 제한 사항(Apple Safari 및 Microsoft Internet Explorer만 해당)
오류가 발견되어 다시 발생하면 스택 추적이 없습니다. 이러한 경우 newrelic.noticeError
API가 모든 브라우저 유형에 대한 스택 추적을 보고하도록 하려면 이를 catch
문의 API에 전달해야 합니다.
try { throw errorObject;} catch (err) { newrelic.noticeError(err); throw err; // loses stack trace!}