diff --git a/src/app/MyError.ts b/src/app/MyError.ts
new file mode 100644
index 0000000000000000000000000000000000000000..e1264c74bd3eb232216890bc6eae9cbd1ef90948
--- /dev/null
+++ b/src/app/MyError.ts
@@ -0,0 +1,9 @@
+
+import { ErrorHandler } from '@angular/core';
+
+export class MyErrorHandler implements ErrorHandler {
+  handleError(error) { 
+    console.log(error.stack);
+    (<any> window).courseware.sendErrorLog(error);
+  }
+}
\ No newline at end of file
diff --git a/src/app/app.module.ts b/src/app/app.module.ts
index 020fa97a2fd89dc2811c6cb58f5949c46ed27635..a0995a75739d55061953bdc16761ee2f6524aed1 100644
--- a/src/app/app.module.ts
+++ b/src/app/app.module.ts
@@ -1,5 +1,7 @@
 import { BrowserModule } from '@angular/platform-browser';
-import { NgModule } from '@angular/core';
+import { NgModule, ErrorHandler } from '@angular/core';
+
+import {MyErrorHandler} from './MyError';
 
 import { AppComponent } from './app.component';
 import { NgZorroAntdModule, NZ_I18N, zh_CN } from 'ng-zorro-antd';
@@ -50,7 +52,10 @@ registerLocaleData(zh);
     BrowserAnimationsModule,
     FontAwesomeModule
   ],
-  providers: [{ provide: NZ_I18N, useValue: zh_CN }],
+  providers: [
+    {provide: ErrorHandler, useClass: MyErrorHandler},
+    { provide: NZ_I18N, useValue: zh_CN }
+  ],
   bootstrap: [AppComponent]
 })
 export class AppModule {