项目

HTTP 错误报告服务

HttpErrorReporterService 是由 @abp/ng.core 包提供的服务。通过该服务可以报告 HTTP 错误。当有错误被报告时,该服务会发出事件,并将错误以数组形式保存。RestService 使用 HttpErrorReporterService 来报告错误。

查看以下示例了解如何报告错误:

import { HttpErrorReporterService } from '@abp/ng.core';
import { HttpClient } from '@angular/common/http';
import { Injectable, inject } from '@angular/core';
import { of } from 'rxjs';
import { catchError } from 'rxjs/operators';

@Injectable()
export class SomeService {
  private http = inject(HttpClient);
  private httpErrorReporter = inject(HttpErrorReporterService);

  getData() {
    return this.http.get('http://example.com/get-data').pipe(
      catchError(err => {
        this.httpErrorReporter.reportError(err);
        return of(null);
      }),
    );
  }
}

查看以下示例了解如何监听已报告的错误:

import { HttpErrorReporterService } from '@abp/ng.core';
import { HttpErrorResponse } from '@angular/common/http';
import { Injectable, inject } from '@angular/core';

@Injectable()
export class MyErrorHandler {
  private httpErrorReporter = inject(HttpErrorReporterService);

  constructor() {
    this.handleErrors();
  }

  handleErrors() {
    this.httpErrorReporter.reporter$.subscribe((err: HttpErrorResponse) => {
      // 在此处处理错误
    });
  }
}

API

reporter$: Observable<HttpErrorResponse>

reporter$ 是一个 getter 方法,返回一个可观察对象。当有新错误被报告时会发出事件。事件值的类型为 HttpErrorResponse

errors$: Observable<HttpErrorResponse[]>

errors$ 是一个 getter 方法,返回一个可观察对象。当有新错误被报告时会发出事件。事件值是运行时报告的所有错误。

errors: HttpErrorResponse

errors 是一个 getter 方法,返回所有已报告的错误。

reportError(error: HttpErrorResponse): void

reportError 是一个方法。通过该方法可以报告错误。 当错误被报告时,该方法会触发 reports$errors$ 可观察对象发出事件。

在本文档中