我认为您是对的- jslint 以前没有这样抱怨过。相反,它告诉你你需要对 做点什么ex
,对吗?稍后我将检查 github 以查看和编辑它。 编辑:[你]的大收获!JSLint 的作者 Crockford于今年 4 月 29 日在第 3444 行附近添加了这个。catch
而且他在 jslint 的源代码中使用了空块,所以我想他也必须给我们提供帮助。;^)
JSLint 希望您将空catch
块与ignore
变量名混为一谈,以便阅读您的代码的人可以清楚地看出您有意不在catch
块中执行任何操作。正如 Crockford在其他地方所说,他认为“编写正确的程序是很困难的,同时使用难以区分明显错误的习语。”
1.)ex
使用过(好的)
所以(我猜你知道)如果你编写这段代码并使用,ex
jslint 不会抱怨。
/*jslint browser: true, white:true, sloppy:true*/
var spam;
try {
spam = "spam";
} catch (ex) {
window.alert(ex);
}
2.)ex
未使用的手段ignore
(也可以)
因此,如果您的意思是不对.ex
ex
ignore
/*jslint browser: true, white:true, sloppy:true*/
var spam;
try {
spam = "spam";
} catch (ignore) {
}
3.)ignore
使用(错误!)
因此,以典型的 Crockfordian 方式,您现在不能使用ignore
并且实际上在块中做某事catch
!
/*jslint browser: true, white:true, sloppy:true*/
var spam;
try {
spam = "spam";
} catch (ignore) {
window.alert(ignore);
}
这给了
意外的“忽略”。} catch (ignore) {
Crockford 的另一个超显式“不要编写看起来像错误的代码”。
(旁白:在讨论这个主题时,看看Why are empty catch blocks a bad idea可能会很有趣。老实说,尽管ignore
基于该讨论,这可能是一个有用的约定(我的意思是,它包括 Skeet 反对 emptycatch
块!),我有点惊讶Crockford允许ignore
kludge,因为上面的链接有一些参数感觉很像他称一些正则表达式“不安全”。)