Angular ionic 2不冻结的异常处理

Angular ionic 2不冻结的异常处理,angular,ionic2,Angular,Ionic2,如何使我的应用程序对异常具有弹性 目前,每次出现异常时,UI都会冻结,我必须重新启动应用程序 谢谢。您可以使用 ExceptionHandler的默认实现打印错误消息 到控制台。要拦截错误处理,请编写自定义异常 处理程序,根据应用程序的情况替换此默认值 因此,您可以创建自己的此类实现 class MyExceptionHandler implements ExceptionHandler { call(error, stackTrace = null, reason = null) {

如何使我的应用程序对异常具有弹性

目前,每次出现异常时,UI都会冻结,我必须重新启动应用程序

谢谢。

您可以使用

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

因此,您可以创建自己的此类实现

class MyExceptionHandler implements ExceptionHandler {
  call(error, stackTrace = null, reason = null) {
    // do something with the exception
  }
}
然后,将其包含在最顶端的组件(应用程序组件)中,如下所示:

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

@Component({
    providers: [provide(ExceptionHandler, {useClass: MyExceptionHandler})]
})
export class MyApp{...}
@NgModule({
  providers: [{provide: ErrorHandler, useClass: MyExceptionHandler}]
})
class MyModule {}
更新

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

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

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

更新:最新angular2,angular core中有
ErrorHandler
ExceptionHandler
,现在是
@angular2/core
@angular2/core

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

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

链接到新的angular类:

谢谢,我已经尝试过了,但是我遇到了一个错误
TypeScript错误:app/app.ts(118,7):错误TS2420:class'MyExceptionHandler'错误地实现了接口'ExceptionHandler'。类型“MyExceptionHandler”中缺少属性“\u logger”。
我在之后尝试了不同的操作,但仍然出错
属性“\u logger”在类型“ExceptionHandler”中是私有的,但在类型“MyExceptionHandler”中不是。
类型脚本错误:app/app.ts(118,7):错误TS2420:类“MyExceptionHandler”未正确实现接口“ExceptionHandler”。类型有单独的私有属性“\u logger”
声明如果我没有实现该接口,则在运行时出现错误
Uncaught TypeError:无法读取未定义的属性“call”
很抱歉,这也发生在我的应用程序中。它似乎与Angular2上的一个bug有关(有几个问题,比如,和。你试过了吗?在那篇评论和下一篇评论中,@tbragaf共享了一个解决方法,并且似乎在我的应用程序中正常工作。好的,谢谢,它与“解决方法”一起工作,我不得不为我的自定义处理程序使用工厂,而不是“useClass”我所做的一切都不会发生