JavaScript 在错误处理情况下throw语句无法正常工作

JavaScript 在错误处理情况下throw语句无法正常工作

在本文中,我们将尝试理解在哪种情况下throw语句在错误处理情况下不起作用,以及如何通过哪种方式彻底解决它,以便在JavaScript中产生正确的输出,并通过某些示例进行说明。

让我们看一下下面的部分,其中包含某些编码示例以及它们的理论解释,以便以更好和更高效的方式说明我们的问题及其解决方案。

示例1:

  • 在此示例中,我们将尽可能详细地解决我们的问题。
  • 这里我们将使用一个随机示例,例如检查一个数字是否为正数。
  • 为此,我们将创建一个函数,该函数将接受一个整数作为其参数,稍后将使用多个if语句检查该数字的值。
  • 根据数字是否不为正(即为负数)或数字是否为零,我们将依次抛出随机的错误消息。
  • 然后在try块中,我们将返回一行文字,说明已经确定了该数字是正数,如果不是,则抛出的错误将在catch块中捕获。
  • 最后,在输出结果中,我们将看到throw部分没有按照我们期望的方式显示错误。

Javascript

<script> 
    let checkNumberValue = (num) => { 
        if (num < 0) { 
            throw new Error(`{num} is a negative number`); 
        } 
  
        if (num === 0) { 
            throw new Error(`{num} found...!!`); 
        } 
  
        try { 
            return `${num} is a positive number`; 
        } catch (error) { 
            console.log(error); 
        } 
    }; 
  
    checkNumberValue(-5); 
</script>
JavaScript

输出:

throw new Error(`${num} is a negative number`);
^
Error: -5 is a negative number
    at checkNumberValue (c:\Users\acer\Desktop\GeeksforGeeks Articles materials\varlet.js:1469:11)
    at Object.<anonymous> (c:\Users\acer\Desktop\GeeksforGeeks Articles materials\varlet.js:1483:1)
    at Module._compile (internal/modules/cjs/loader.js:1063:30)
    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
Bash

如我们所见,这段代码片段的输出看起来更加模糊,输出中多了一些不必要的或不需要的行,让我们看一下下面展示的示例,它将向我们展示上述问题的解决方案。

示例2:

  • 在这个示例中,我们将考虑上一个示例中的代码函数,该函数用于检查传递的数字的值。
  • 在这个函数内部,我们将在代码的开头放置一个try块,并使用多个if语句来检查不需要的事实是否匹配。
  • 如果它们匹配,我们将抛出相应的错误,如果不匹配,我们将返回一条语句,表明这个数字是一个正数。
  • 最后,我们将在catch块中捕获为某些情况抛出的所有错误。
  • 在输出中,我们现在将看到throw语句工作正常,错误消息成功打印为期望的输出。

Javascript

<script> 
    let checkNumberValue = (num) => { 
        try { 
            if (num < 0) { 
                throw new Error(`{num} is a negative number`); 
            } 
  
            if (num === 0) { 
                throw new Error(`{num} found...!!`); 
            } 
  
            return `${num} is a positive number`; 
        } catch (error) { 
            console.log("Caught Error: " + error.message); 
        } 
    }; 
  
    checkNumberValue(-5); 
</script>
JavaScript

输出:

Caught Error: -5 is a negative number
JavaScript

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册