javascript - 如何在一个函数中抛出错误以被另一个函数捕获?

标签 javascript error-handling try-catch

我有这个“测试”代码:

function func1(){
    try{
    ...stuff...
    }catch(err){
        throw new Error();
    }
}

function func2(){
    try{
        func1();
    }catch(err){
        console.log("ERROR")
    }
}

func2();

我有一个函数在 try-catch-statement 中的 catch 中抛出错误。我想要它,如果 func1 抛出错误,它会被第一个 try-catch-statement 捕获,但是当我尝试这个时,它不会被第一个语句捕获,它只是暂停代码并返回错误。我做错了什么?这是错误的做法吗?

最佳答案

这段代码应该让您了解 try/catch block 是如何工作的。在第一个函数调用中,我们调用了 func2,它有一个 try/catch block 。您可以在控制台中看到错误被捕获并继续执行。然后我们调用 func1,它会抛出一个 Uncaught Error ,并在控制台中显示为错误。

function func1() {
  console.log('func1...');
  throw new Error('something bad happened!');
}

function func2() {
  console.log('func2...');
  try {
    func1();
  } catch (err) {
    console.log('Caught error');
  }
}

console.log('func2()');
func2();

console.log('func1()');
func1();

关于javascript - 如何在一个函数中抛出错误以被另一个函数捕获?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55901040/

相关文章:

javascript - 如何解决 Invariant violation :Text strings must be rendered within a <Text> component in React Native?

javascript - foreach 表行除以 5

python - flask : Ignore if one file is not uploaded in form (containing multiple file upload options)

Laravel 错误屏幕,哪个文件引发错误以及要修复哪个文件?

java - 我可以从方法中捕获抛出异常吗?

r - 在栅格::calc中的tryCatch r

javascript - 打开设备时Pouchdb查询不过滤KEY

javascript - 在 chartjs 中,点在顶部和底部的边缘被减半

powershell - 我应该如何处理返回不同类型值的函数和cmdlet?

mysql - 尝试/捕获语法