在Angular 8+中实现ErrorHandler类;在运行时给出异常
浏览器中的异常:在Angular 8+中实现ErrorHandler类;在运行时给出异常,angular,error-handling,Angular,Error Handling,浏览器中的异常: 将MyErrorHandler类移动到一个单独的文件中,并将其导入AppModule,它应该可以工作。 Angular使用typescript装饰器,这些装饰器在它们所属的每个类之上定义。在您的例子中,您将装饰程序@NgModule添加到类MyErrorHandler,这样,Angular就无法找到mainAppModule的正确配置,这就是为什么在编译时会收到这样的错误。将MyErrorHandler类移动到一个单独的文件中,并将其导入AppModule中,它应该可以工作。它
将MyErrorHandler类移动到一个单独的文件中,并将其导入AppModule,它应该可以工作。
Angular使用typescript装饰器,这些装饰器在它们所属的每个类之上定义。在您的例子中,您将装饰程序
@NgModule
添加到类MyErrorHandler
,这样,Angular就无法找到mainAppModule
的正确配置,这就是为什么在编译时会收到这样的错误。将MyErrorHandler
类移动到一个单独的文件中,并将其导入AppModule
中,它应该可以工作。它工作得很好。我可以知道原因吗?谢谢你的帮助和指导。
this snippet is from app.module.ts. I just created an angular 9 application and tried to implement ErrorHandler class to catch error but it is showing
the error at run time and page does not load.
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppRoutingModule } from './app-routing.module';
import { AppComponent } from './app.component';
import { ErrorHandler } from '@angular/core';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule
],
providers: [
{provide: ErrorHandler, useClass: MyErrorHandler}
],
bootstrap: [AppComponent]
})
class MyErrorHandler implements ErrorHandler {
handleError(error) {
alert(error);
// do something with the exception
}
}
export class AppModule { }
ASSERTION ERROR: Type passed in is not NgModuleType, it does not have 'ɵmod' property.
at throwError (core.js:1344)
at assertNgModuleType (core.js:2951)
at compileNgModuleFactory__POST_R3__ (core.js:42275)
at PlatformRef.bootstrapModule (core.js:42663)
at Module../src/main.ts (main.ts:11)
at __webpack_require__ (bootstrap:79)
at Object.0 (main.ts:12)
at __webpack_require__ (bootstrap:79)
at checkDeferredModules (bootstrap:45)
at Array.webpackJsonpCallback [as push] (bootstrap:32)