The IonicErrorHandler
has been deprecated in favor of the ErrorHandler
of Angular in Ionic v4? Is that correct?
2 Likes
IonicErrorHandler
was designed (primarily) for use during Development (e.g., when running ionic serve
).
You should provide your own Production version of ErrorHandler
.
core.module.ts:
import { ENV } from '@env';
@NgModule({
imports: [
...
ServiceWorkerModule.register('/ngsw-worker.js', { enabled: ENV.production }),
...
],
exports: [],
declarations: [],
providers: [
...
ENV.production ? { provide: ErrorHandler, useClass: BrewErrorHandler } :
{ provide: ErrorHandler, useClass: IonicErrorHandler},
...
]
})
export class CoreModule {
...
}
}
error.handler.ts
import { ErrorHandler, Injectable } from '@angular/core';
@Injectable()
export class BrewErrorHandler extends ErrorHandler {
constructor() {
super();
}
handleError(error: any): void {
...
}
}
app.module.ts:
@NgModule({
declarations: [ AppComponent ],
imports: [
BrowserModule,
CoreModule,
IonicModule.forRoot(AppComponent, {
backButtonText: ''
})
],
bootstrap: [ IonicApp ],
entryComponents: [ AppComponent ],
providers: []
})
export class AppModule {}
See:
3 Likes
thx @robinyo for the answer, that confirm what I was thinking. For my Sentry
handler I should not extend IonicErrorHandler
anymore but the ErrorHandler
from Angular
P.S.: Thx for your example, interesting the part where you use the ENV to use a different handler.
Note, I didn’t find any IonicErrorHandler
class, might be deprecated or just not implemented yet in the current version
2 Likes