angular - 角度的自定义错误处理程序不起作用
问题描述
我正在尝试为我的角度应用程序实现自定义错误处理程序,但我被卡住了。它有效,但仅适用于一些非常奇怪的条件。
这是带有实现的stackblitz: https ://stackblitz.com/edit/angular-mqvzba
在这里,在项目中,我们在“app”文件夹中有一个 global-error-handler.service.ts,还有一个带有其他组件文件的 hello.component.ts 文件。
我已经在 app.module.ts 的提供者部分添加了处理指令。奇怪的是,如果我在抛出之前测试新创建的错误,它确实是一个自定义错误的实例。
我期望得到的是未注释 setTimeout 但不使用它时的结果。
要查看的文件: - src/app/global-error-handler.service.ts - src/app/app.module.ts - src/app/hello.component.ts
解决方案
确保您的 CustomError 类扩展了内置的 Error 类。此外,您需要为 instanceof 设置对象原型,以便在扩展内置函数时正常工作。参考:TypeScript 中的自定义错误类
export class CustomError extends Error {
button?: any
errObject: any
constructor() {
super('custom');
Object.setPrototypeOf(this, CustomError.prototype);
}
}
应该给你
Error received: error on do the thing
global-error-handler.service.ts:42 My error! Yay!
希望这可以帮助!
推荐阅读
- node.js - 在 NodeJS 的 createServer 函数中的响应参数中获取了哪些数据?
- c# - 如何从已发布的 Web 应用程序中使用 selenium 有效地运行 .net 核心单元测试
- mysql - 插入数据查询在Node js中不起作用
- c++ - 如何使用获取-释放内存顺序模型实现简单的自定义锁?
- python - 无法读取网络摄像头流:VideoCapture
- python - 即使字符串颠倒,也计算列表中字符串的出现次数
- flask - 如何查找变量是否包含字符串列表中的字符串
- swift - 上传图片二进制目标c
- flutter - 在flutter web中加载html内容?
- javascript - 使用 JavaScript 中的构建器模式方法在 dom 中构建标签