gpt4 book ai didi

ios - 如果 block 内发生异常会怎样?

转载 作者:行者123 更新时间:2023-11-29 10:39:10 25 4
gpt4 key购买 nike

我只是想了解如果 block 内发生异常会发生什么情况?当它在单独的线程上运行时,它将被抛出到哪里。

还有人可以建议我更好地实现以下两个选项吗?

@try{

[self performBlock^{
some code
}];

}
@catch (NSException*e) {
}

[self performBlock^{
@try{
some code
}
@catch (NSException*e) {
}
}];

最佳答案

对于 #2,它显然捕获了代码中的异常。

对于 #1,这取决于此 performBlock: 方法的作用。 Try block 捕获发生在堆栈下方的异常,即同步函数调用。因此,如果 performBlock: 同步调用它的 block ,那里的异常将被 try block 捕获。但是如果是异步调用,那么那里的异常就不会被try block 捕获,因为执行 block 时,try block 不在栈中。

关于ios - 如果 block 内发生异常会怎样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25376680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com