离子2异常处理没有冻结

时间:2016-08-27 23:43:46

标签: angular ionic2

如何让我的应用程序适应异常。

目前,每次出现异常时,用户界面都会冻结,我必须重新启动应用。

感谢。

2 个答案:

答案 0 :(得分:2)

更新:最新的angular2,角度核心中ErrorHandler不是ExceptionHandler,现在@angular/core不是@angular2/core

import { ErrorHandler } from '@angular/core';

export class MyExceptionHandler implements ErrorHandler {
  handleError(error) {
    // do something with the error
  }
}

链接到新的角度等级:https://angular.io/docs/ts/latest/api/core/index/ErrorHandler-class.html

答案 1 :(得分:1)

您可以使用Angular 2 ExceptionHandler

  

ExceptionHandler的默认实现会输出错误消息   到控制台。要拦截错误处理,请编写自定义异常   处理程序,根据您的应用程序替换此默认值。

所以你可以创建自己的这个类的实现

class MyExceptionHandler implements ExceptionHandler {
  call(error, stackTrace = null, reason = null) {
    // do something with the exception
  }
}

然后,将它包含在您最顶层的组件(App组件)中,如下所示:

import {ExceptionHandler,provide} from '@angular2/core';
import {MyExceptionHandler} from './folder/file-name';

@Component({
    providers: [provide(ExceptionHandler, {useClass: MyExceptionHandler})]
})
export class MyApp{...}

<强>更新

从Ionic2 RC开始,为了替换ExceptionHandler自己的自定义实现,我们需要将它包含在NgModule中,如下所示:

@NgModule({
  providers: [{provide: ErrorHandler, useClass: MyExceptionHandler}]
})
class MyModule {}