在javascript中获取未捕获的异常

Posted

技术标签:

【中文标题】在javascript中获取未捕获的异常【英文标题】:Getting uncaught exception in javascript 【发布时间】:2020-12-07 20:23:37 【问题描述】:

我在浏览器控制台中收到“Uncaught SyntaxError: Unexpected token '”错误,尽管所有条件都满足,但未显示以下消息弹出窗口。 有人可以在这里指出错误吗

*

IF (dmd.is_gpid_packaged_txt(videntifier) = 'TRUE' AND dbcode = 'S' AND bsave AND (vpreorderdt IS NULL OR vpreorderdt = '')) THEN      
    htp.p('<script language = "javascript">          if(voldpreorderdate != null && voldpreorderdate != "" && voldpreorderdate != "NULL")
         
          var answer_preorder = confirm("The preorder is currently live, this will not remove it from Apple. Do you want to proceed?");
          if (answer_preorder)
           
           theform.vpreorderdt.value = vstreetdt;
           </script>');
           bsave := true;
           htp.p('<script language = "javascript"> 
          
         else
           
          theform.vpreorderdt.value = voldpreorderdate;
          </script>');
          bsave := false;
          htp.p('<script language = "javascript"> 
                  
         
          </script> </script>');  
     END IF;

*

【问题讨论】:

您在嵌套脚本标签?那是无效的 html/脚本!当什么是脚本和什么是 plsql 不明显时,您的代码真的很难阅读 【参考方案1】:

您不能将 JavaScript 块拆分为多个 script 标记;您需要将整个代码放入单个 script

你似乎想要这样的东西:

IF (
      dmd.is_gpid_packaged_txt(videntifier) = 'TRUE'
  AND dbcode = 'S'
  AND bsave
  AND vpreorderdt IS NULL
)
THEN
  htp.script(
       'if (voldpreorderdate != null && voldpreorderdate != "" && voldpreorderdate != "NULL")'
    || ''
    ||   'var answer_preorder = confirm('
    ||     '"The preorder is currently live, this will not remove it from Apple.'
    ||     ' Do you want to proceed?"
    ||   ');'
    ||   'theform.vpreorderdt.value = answer_preorder?vstreetdt:voldpreorderdate;'
    || '',
    'javascript'
  );
  bsave := FALSE;
END IF;

【讨论】:

【参考方案2】:

在第一行,它写着dmd.is_gpid_packaged_txt(videntifier) = 'TRUE',但如果你想测试一个东西是否等于另一个东西,你应该使用两个等号,或者==,或者三个等号,或者===,如果你想确保类型也相等。

【讨论】:

这是“一个”错误,但不是 OP 所询问的错误。 第一行是 PL/SQL 而不是 JavaScript。单个 = 等于是语法上有效的 PL/SQL 比较运算符。

以上是关于在javascript中获取未捕获的异常的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript 异常:未捕获的类型错误:将循环结构转换为 JSON

如何在 Google Chrome Canary 中打开未捕获异常时暂停?

未捕获 Java 异常

应用程序因 - 未捕获的异常“NSGenericException”而终止,

使用 CLLocationCoordinate2D 初始化获取 NSException 类型的未捕获异常

java CrashHandler - 一个类捕获Android App的未捕获异常