我有这个“测试”代码:
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/