javascript - 无法处理 Angular 2+ 中的意外错误

标签 javascript angular typescript

这里我正在尝试一个功能,将有一个文件上传功能,我可以在其中上传 JSON 文件,并且该数据将被发布到文本区域,而且我们还可以在其中键入 JSON 结构,按下按钮后,数据将被转移到另一个文本区域,这将删除所有空白和新行等。 所有这些工作正常,但我的问题是如果我输入普通文本并按 Enter 键,那么它会给我错误,例如意外 token

下面是我正在使用的 JSON 结构

[
{
"id": 1,
"name": "Leanne Graham",
"username": "Bret",
"email": "Sincere@april.biz",
"address": {
"street": "Kulas Light",
"suite": "Apt. 556",
"city": "Gwenborough",
"zipcode": "92998-3874",
"geo": {
"lat": "-37.3159",
"lng": "81.1496"
}
},
"phone": "1-770-736-8031 x56442",
"website": "hildegard.org",
"company": {
"name": "Romaguera-Crona",
"catchPhrase": "Multi-layered client-server neural-net",
"bs": "harness real-time e-markets"
}
}
]

下面是我的堆栈 Blitz 代码

https://stackblitz.com/edit/angular-zgyxet

如果我输入 JSON 结构,它工作正常,但如果我输入纯文本,它会给出错误,如何处理此错误,以便我可以向用户发出警报。

最佳答案

错误消息是从 JSON.parse() 方法获取的,因为我们无法将普通字符串解析为 JSON(即不是 JSON 格式)。

请将您的 JSON.parse() 方法放入 try/catch block 中,如下所示:

test() {
    var data = this.TextData;
    var dataInfo = data.replace(/\s+/g, '').trim();
    var info = '';
    try {
        var info = JSON.parse(dataInfo);
    } catch(e) {
        alert('JSON parse error');
    }

    this.TextData1 = info;
}

关于javascript - 无法处理 Angular 2+ 中的意外错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51826829/

相关文章:

javascript - 如何删除没有内容的div

javascript - 文本/纯文件下载的 Angular http$ 响应失败,出现 SyntaxError : Unexpected number in JSON

Angular2检测模板 View 中的元素是否具有类

node.js - 在ubuntu中安装 Node

typescript - CustomError 类型的参数不能分配给 Typescript 中的错误

typescript - TypeScript 类型中的组选项

javascript - jquery 调整图像大小

javascript - 访问选择列表的选项时获取 "null or not an object error"

javascript - 我应该同时使用 `import ' rxjs/Rx '` and ` import { Observable } from '@rxjs/Observable' `

typescript - 从以编程方式创建的 AST 打印类型定义