JavaScript 捕获意外标记错误
在本文中,我们将尝试理解为什么在处理JavaScript中的try/catch时会收到意外标记错误,以及通过特定的代码示例(在JavaScript本身中)我们将尝试看看如何正确解决此标记错误。
意外标记错误 通常被视为主要 语法错误 的子错误,它通常在我们尝试在JavaScript中执行代码片段时出现,其中原始语法中可能存在额外的或缺少的字符,并且这个 语法错误 对象通常继承自名为 错误 对象的主对象。
即使我们不处理try/catch块的执行,只要在语法中缺少某些内容或超出语法所需参数之外添加了其他内容,该错误可能出现在任何其他方法或语法执行中。
让我们看一下下面的示例语法,该语法用于描述JavaScript中的try/catch块。
try {
// In this block all the executable stuffs has to be added...
// which could be error free or with error too..
}
catch(error){
// In this block error catching as well as
// handling is performed...
}
在分析了上述语法之后,我们来看一下下面的示例,其中我们将展示出这个“unexpected token”错误是如何产生的,然后在另一个示例中,我们还将展示它的解决方法。 示例1: 在这个示例中,我们将在catch块语法中忽略错误参数,然后在没有错误参数的情况下尝试执行我们的代码,最终我们会看到由于相同的任务导致的错误。
Javascript
<script>
let execution = () => {
try {
let a = 10;
let b = 20;
let sum = a + b;
console.log(sum);
}
catch () { }
}
execution();
</script>
输出:
catch(){}
^
SyntaxError: Unexpected token ')'
at wrapSafe (internal/modules/cjs/loader.js:979:16)
at Module._compile (internal/modules/cjs/loader.js:1027:27)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)
at internal/main/run_main_module.js:17:47
示例2: 为了解决上述示例中出现的错误,我们只需在catch()方法内添加一个 error 参数,这样即可解决错误并显示结果。
JavaScript
<script>
let execution = () => {
try {
let a = 10;
let b = 20;
let sum = a + b;
console.log("Sum is : " + sum);
} catch (error) {
console.log(error.message);
}
};
execution();
</script>
输出:
Sum is : 30