javascript - 我应该如何处理 JavaScript 中对象构造函数的无效输入

标签 javascript oop class exception throw

我正在努力了解 Javascript 中的 OOP(我也从未真正在任何其他语言中使用过 OOP,因此这是我的第一次体验)。我编写了一个需要构造函数输入的类,但构造函数仅适用于特定格式的字符串。

我有一个可用于检查输入的正则表达式,但我不知道如果它不匹配(或者根本没有输入)我该怎么办。我应该抛出某种异常吗?如果是这样,我该怎么做?

最佳答案

在 JavaScript 中,抛出异常不是你想要做的。异常只能在异常情况下发生(duh ...)。这与 Java 形成对比,在 Java 中到处都使用异常来进行通信。造成这种差异的原因是 JS 中的异常处理非常慢。

所以你可以很好地为你的构造函数配备一个throw,但这不应该在生产中被捕获。您宁愿先在构造函数之外检查有效性。

做:

if (validRE.test(input)) {
    foo = new MyObject(input);
} else {
    // show message to the user
}

不要:

try {
    foo = new MyObject(input);
} catch (ex) {
    // show message to the user
}

关于javascript - 我应该如何处理 JavaScript 中对象构造函数的无效输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12731213/

相关文章:

javascript - Jquery - Bootstrap DataTable 刷新问题 DATA

javascript - 调用对象内的另一个函数

c++ - 指向成员函数的函数指针

C++ 类重载 : is it possible to make compiler see which one to use based on template?

javascript - 在 Angular 中从 ng-change 运行 Javascript 函数

javascript - 在弹出窗口中显示加载消息

JavaScript:比较两个日期没有输出

objective-c - 在 NSObject 子类的自定义 init 方法中使用 self = [super init]

python - NameError 在 python 中使用 execfile

python - 改变实例变量