Esta tradução de máquina é fornecida para sua comodidade.

Caso haja alguma divergência entre a versão em inglês e a traduzida, a versão em inglês prevalece. Acesse esta página para mais informações.

Criar um problema

noticeError

Sintaxe

newrelic.noticeError(error object $error, [object $customAttributes])

Identifica um erro do browser sem interromper as operações do seu aplicativo.

Requisitos

  • Browser Pro ou agente Pro+SPA

    • Argumento atributo personalizado requer agente v1118 ou superior
    • newrelic.noticeError() requer agente v499 ou superior
    • NREUM.noticeError() requer agente v411 ou superior
  • Habilitado

  • Monitoramento JavaScript habilitado

  • Se estiver usando o npm para instalar o agente browser, você deverá ativar o recurso jserrors ao instanciar a classe BrowserAgent . Na matriz features , adicione o seguinte:

    import { JSErrors } from '@newrelic/browser-agent/features/jserrors';
    const options = {
    info: { ... },
    loader_config: { ... },
    init: { ... },
    features: [
    JSErrors
    ]
    }

    Para obter mais informações, consulte a documentação de instalação do browser npm.

Descrição

Use esta chamada para notar ou log erros manipulados ou outros erros diversos do seu aplicativo. Isso é útil quando você detectou e tratou um erro, mas ainda deseja identificá-lo sem interromper a operação do seu aplicativo.

Você também pode usar a API para observar erros que, de outra forma, seriam relatados sem nenhum detalhe, como erros que ocorrem durante a inicialização do script ou em um manipulador de eventos embutido. Os erros aparecerão na páginaErrors junto com outros erros que o New Relic normalmente detecta. Eles também serão registrados como um eventoJavaScriptError . Por exemplo:

var err = new Error('Report caught error to New Relic');
newrelic.noticeError(err);

Nota: Se mais de 1.000 eventos JavaScriptError forem enviados em uma única solicitação, apenas 1.000 eventos separados serão registrados. No entanto, o número total de eventos é preservado internamente e acessível usando EXTRAPOLATE cláusula de consulta.

Parâmetro

Parâmetro

Descrição

$error

objeto de erro

Obrigatório. Forneça uma mensagem de erro significativa que você possa usar ao analisar dados na páginaErrors do browser.

$customAttributes objeto

Opcional. Um objeto contendo pares nome/valor representando atributo personalizado.

Exemplos

Erros não críticos

Este exemplo mostra como usar a API newrelic.noticeError para relatar erros detectados que você não deseja que interrompam seu aplicativo. Isso é útil quando erros não críticos não têm impacto na experiência do usuário, mas você ainda deseja relatá-los aos desenvolvedores. O código de exemplo usa com segurança um objeto foo padrão em caso de JSON inválido.

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);

Retorno de chamada com erro opcional

Este exemplo mostra como relatar um erro ao New Relic ao usar o padrão de erro e resposta retorno de chamada popularizado pelo Node.js e comum no desenvolvimento do Browserify. Você pode substituir alert(body); pela sua própria mensagem relevante.

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);
});

Exemplo de API baseada em promessa

As promessas fornecem um padrão único para lidar com a interação assíncrona, facilitando o tratamento de erros assíncronos. No entanto, isso também facilita o erro completamente ignorado, deixando o aplicativo quebrado de maneiras que os desenvolvedores não conseguem ver. Este exemplo reporta esses erros assíncronos ao New Relic para evitar que sejam ignorados.

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);
});

Exemplo de captura de atributo personalizado

try {
// code that throws an error
} catch (err) {
newrelic.noticeError(err, { attribute1: 'value1', attribute2: 2 });
}

Limitações do browser (somente Apple Safari e Microsoft Internet Explorer)

Se um erro for detectado e relançado, ele não terá um stack trace. Nesses casos, se desejar que a API newrelic.noticeError relate um stack trace para todos os tipos de navegador, você deverá transmiti-lo à API na instrução catch.

try {
throw errorObject;
} catch (err) {
newrelic.noticeError(err);
throw err; // loses stack trace!
}