Javascript 如何允许代码在错误[JS]后继续执行

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

所以,我正在制作一个网站。它检查URL查询。如果没有,我的所有代码都会停止,但我希望代码即使出现错误也能执行。这是我目前的代码:

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
    ,忽略错误

  • 我会同意的

    以下是获取默认值的大致示意图(ES5):

    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
    的代码吗?我添加了它。这有点古怪,但对约翰有效