Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

200
Visualizações
La aplicación deja de responder después de encontrar una excepción

¿Cómo decirle a Angular 2 que no bloquee toda la aplicación cuando encuentra una excepción?

No estoy seguro de si es posible, porque Google no me iluminó sobre esto. Pero parece fundamental para cualquier aplicación web de una sola página.

Cada vez que Angular 2 encuentra una excepción y arroja un error, la aplicación completa deja de responder.

Sé que en JavaScript

 try { doSomething(); } catch(err) { handleErrors(err); }

podría resolver el problema.

Pero solo quiero saber si hay alguna solución o solución alternativa específica de Angular.

over 4 years ago · Santiago Trujillo
3 Respostas
Responde à pergunta

0

En la versión final de angular 2, puede implementar ErrorHandler personalizado ( ejemplo de documentos de Angular 2 ):

 import {NgModule, ErrorHandler} from '@angular/core'; class MyErrorHandler implements ErrorHandler { handleError(error) { // do something with the exception } } @NgModule({ providers: [{provide: ErrorHandler, useClass: MyErrorHandler}] }) class MyModule {}
over 4 years ago · Santiago Trujillo Relatório

0

ACTUALIZAR:

2.0.0 RC.6 cambió el nombre de ExceptionHandler a ErrorHandler y call a handleError :

 @Injectable() class MyErrorHandler implements ErrorHandler { handleError(error) { // do something with the exception } } @NgModule({ directives: [MyApp], providers: [ {provide: ErrorHandler, useClass: MyErrorHandler} ] }) export class AppModule {}

Véase también esto .

ORIGINAL:

Implemente un controlador de excepciones personalizado :

 @Injectable() class MyExceptionHandler implements ExceptionHandler { call(error, stackTrace = null, reason = null) { // do something with the exception } } @NgModule({ directives: [MyApp], providers: [ {provide: ExceptionHandler, useClass: MyExceptionHandler} ] }) export class AppModule {}

Véase también esto y esto .

No he probado si esto permite que la aplicación continúe después de una excepción, pero creo que vale la pena intentarlo. Al menos debería ser posible recargar la página automáticamente.

Por lo general, una excepción debe manejarse lo más cerca posible de la causa cuando hay una manera de recuperarse.

over 4 years ago · Santiago Trujillo Relatório

0

Traté de implementar el controlador de excepciones personalizado según las indicaciones de @GünterZöchbauer

y esto funcionó para mí


Inicia tu aplicación con CustomExceptionHandler .

 import {ExceptionHandler} from 'angular2/core'; class _ArrayLogger { res = []; log(s:any):void { this.res.push(s); } logError(s:any):void { this.res.push(s); } logGroup(s:any):void { this.res.push(s); } logGroupEnd() { if(this.res.length) { //this section executes if any error is logged by angular. //do your stuff here /*eg if(location.pathname !== 'dashboard') { window.location.href = '/dashboard'; // condition is required to prevent infinite loop } */ } }; } export class CustomExceptionHandler extends ExceptionHandler { constructor() { super(new _ArrayLogger(), true); } call(error, stackTrace = null, reason = null) { super.call(error, stackTrace, reason); } } bootstrap(MyApp, [provide(ExceptionHandler, {useClass: CustomExceptionHandler})])
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda