Angular 4, ErrorHandler personalizado não reconhece Erro personalizado
Eu tentei criar um global personalizadoErrorHandler e seguiu as instruções detalhadasaqui
manipulador de erro de aplicativo (apenas as partes importantes)
@Injectable()
export class ApplicationErrorHandler extends ErrorHandler {
constructor(private injector: Injector) {
super(false);
}
handleError(error: any): void {
if (error instanceof ApplicationError || error.originalError instanceof ApplicationError) {
this.addError(error.originalError);
}
else {
super.handleError(error);
}
}
app-module
providers: [
{
provide: ErrorHandler,
useClass: ApplicationErrorHandler
}
],
app.component (apenas a parte importante)
public ngOnInit(): void {
const error = new ApplicationError();
error.message = "fehler";
throw error;
}
erro de aplicação
export class ApplicationError implements Error {
name: string;
message: string;
httpStatus?: number = 404;
applicationStatus?: number;
errorMessageTranslationkey: string;
handled: boolean = false;
}
no meu app.component eu jogo um ApplicationError (em ngOnInit), meu ErrorHandler é chamado com êxito. Mas meu erro nohandleError
é sempre do tipoError
eerror.originalError
é sempreundefined
não importa se eu ligo meu erro personalizado e lá oif
nunca vai resolver a verdade.
Não faço ideia do porquê e como isso acontece. O que eu vejo é que o erro é, então eu presumo, envolto porque quando eu depuro eu vejoerror: Error: [object: Object] at viewWrappedDebugError (vendor.bundle.js)
Alguma idéia do que pode causar esse problema e como posso resolvê-lo?
EDITAR Como suspeito, tem algo a ver com o Debugmode. Assim que eu ativar o prodmode comenableProdMode();
funciona como esperado.
Ainda assim, isso realmente não responde à minha pergunta ainda.
Como posso lidar com meu erro personalizado no modo de depuração do angular?