【发布时间】:2018-09-25 20:41:45
【问题描述】:
我正在尝试处理 ReactJs 中的错误,但我认为我所做的事情是“过于硬编码”。 错误处理检查输入是否为数字,否则抛出错误。我想向用户显示一条消息并告诉他们他们做错了什么。
按照标准,当用户输入数字以外的内容时抛出的错误是:
在将数字转换为字符串时,无效的数字值“d”应该是匹配的数字 (^-?[0-9.]+)。
为了给他们一个信息丰富的信息,我做了以下事情:
try {
/// some code here
} catch (err) {
/* this.state.value refers to user's input*/
if(err.message === ("while converting number to string, invalid number value '"+ this.state.value +"', should be a number matching (^-?[0-9.]+)."))
{
/// code which returns an informative message
}
};
if 语句是否适用于错误处理或是否可以改进?我显然会为项目的不同方面运行错误处理并检查不同的情况,但是我发现自己一遍又一遍地重复同样的事情。
【问题讨论】:
-
相当多,是的。为什么不传递另一个名为
name的错误属性并检查它? -
有时我会在抛出之前为错误添加一个键。例如你可以做
throw { invalidNumber: true }然后检查err.invalidNumber -
@Bernardo Siqueira 你的意思是创建一个包含所有错误的字符串数组然后检查它吗?
标签: javascript reactjs error-handling