【发布时间】:2019-09-17 22:35:12
【问题描述】:
我有这个“测试”代码:
function func1(){
try{
...stuff...
}catch(err){
throw new Error();
}
}
function func2(){
try{
func1();
}catch(err){
console.log("ERROR")
}
}
func2();
我有一个函数在 try-catch 语句中的 catch 中引发错误。我想要它,如果 func1 抛出错误,它会被第一个 try-catch-statement 捕获,但是当我尝试这个时,它不会被第一个语句捕获,它只是暂停代码并返回错误。我做错了什么?这是错误的做法吗?
【问题讨论】:
-
您到底需要什么?
-
从您的描述中不清楚您正在尝试做什么以及什么不起作用 - 您能否提供更多详细信息,也许可以提供一个可运行的示例?但是您那里的代码应该(假设
...stuff...抛出错误)首先在func1中捕获错误,然后引发一个新错误,然后在func2中捕获它。 -
@KrishnaPrashatt func1 正在处理一些可能返回错误的操作,在这种情况下,我需要它返回 func2(调用 func1 的函数)并执行一些其他操作。
-
如果是这样,为什么要对 func1 使用单独的 try/catch?因为你是在func2的try块中执行func1,如果出错,自然会去func2的catch块吧?
标签: javascript error-handling try-catch