我怎样才能忽略某些错误? eslint no-ex-assign 抱怨
How can I ignore certain Errors? eslint no-ex-assign complains
我有一些代码试图做一些事情。有时由于特定原因而失败,我认为这不是失败。但我仍然想捕捉真正的错误。
此代码完美运行,但是 eslint complains:
try {
doThing()
} catch (err) {
if ( err.message.includes('already exists') ) {
err = null;
}
if ( err ) {
throw new Error(`Oh no something really bad happened!`)
}
}
我知道将 err 分配给 null 是破坏性的:这就是我这样做的原因,因为我不认为这是一个有效的错误并且不想再与它有任何关系 .
是否有更好的处理方法? 显然我可以向 throw 块添加一个条件,但这似乎并不明确。
例如,我可以提前跳出抓钟吗?
你为什么不认为,向 throw 块添加条件是显式的?就个人而言,我认为这更具可读性:
try {
doThing()
} catch (err) {
const canExceptionBeIgnored = err.message.includes('already exists');
if (!canExceptionBeIgnored) {
throw new Error(`Oh no something really bad happened!`)
}
}
我有一些代码试图做一些事情。有时由于特定原因而失败,我认为这不是失败。但我仍然想捕捉真正的错误。
此代码完美运行,但是 eslint complains:
try {
doThing()
} catch (err) {
if ( err.message.includes('already exists') ) {
err = null;
}
if ( err ) {
throw new Error(`Oh no something really bad happened!`)
}
}
我知道将 err 分配给 null 是破坏性的:这就是我这样做的原因,因为我不认为这是一个有效的错误并且不想再与它有任何关系 .
是否有更好的处理方法? 显然我可以向 throw 块添加一个条件,但这似乎并不明确。
例如,我可以提前跳出抓钟吗?
你为什么不认为,向 throw 块添加条件是显式的?就个人而言,我认为这更具可读性:
try {
doThing()
} catch (err) {
const canExceptionBeIgnored = err.message.includes('already exists');
if (!canExceptionBeIgnored) {
throw new Error(`Oh no something really bad happened!`)
}
}