Javascript 如何允许代码在错误[JS]后继续执行
所以,我正在制作一个网站。它检查URL查询。如果没有,我的所有代码都会停止,但我希望代码即使出现错误也能执行。这是我目前的代码:Javascript 如何允许代码在错误[JS]后继续执行,javascript,error-handling,Javascript,Error Handling,所以,我正在制作一个网站。它检查URL查询。如果没有,我的所有代码都会停止,但我希望代码即使出现错误也能执行。这是我目前的代码: if (getUrlArg('foo') == "bar") { //do stuff } 但是如果URL栏中没有“Foo”,它会抛出一个错误并停止执行脚本。即使URL栏中没有“foo”,我如何继续运行脚本 编辑: getUrlArg的代码如下: function getUrlArg(argname) { const queryString = window.l
if (getUrlArg('foo') == "bar") { //do stuff }
但是如果URL栏中没有“Foo”,它会抛出一个错误并停止执行脚本。即使URL栏中没有“foo”,我如何继续运行脚本
编辑:
getUrlArg的代码如下:
function getUrlArg(argname) {
const queryString = window.location.search;
const urlParams = new URLSearchParams(queryString);
return urlParams.get(argname);
}
你有两个选择:
getUrlArg
,使其在某些情况下不会抛出。可能是一个可选的第二个参数defaultValue
,如果接收到该参数并且URL没有该参数,则不会抛出该参数(而是返回defaultValue
)try
/catch
,忽略错误function getUrlArg(name, defaultValue) {
if (/*...the arg isn't there...*/) {
if (typeof defaultValue !== "undefined") {
return defaultValue;
}
throw new Error(/*...the error it's already throwing...*/);
}
return /*...the value that was found in the URL...*/;
}
然后在您使用它的地方:
if (getUrlArg("foo", null) === "bar") { /*...do stuff...*/ }
if (getUrlArg("foo", true) === "bar") { /*...do stuff...*/ }
或者只需要一个“可选”标志:
然后在您使用它的地方:
if (getUrlArg("foo", null) === "bar") { /*...do stuff...*/ }
if (getUrlArg("foo", true) === "bar") { /*...do stuff...*/ }
您可以使用“try catch block for this”
嗯,我能想象的最简单的方式是有点不同的情况:
if (foo && getUrlArg(foo) == "bar") {
// do stuff
} else {
// go on and do other stuff
}
当然,您可以在
else
语句中添加更复杂的内容。如果未设置foo
,则脚本应继续执行您在else
中输入的内容。否则,您可以添加foo!==空值
也适用于您的if
。承诺是很好的,但是它们的实现取决于您想要实现什么。您可以共享getUrlArg
的代码吗?我添加了它。这有点古怪,但对约翰有效