Xcode 16.4中EXC_BREAKPOINT异常中断Swift测试的问题咨询
Xcode 16.4中EXC_BREAKPOINT异常中断Swift测试的问题咨询
最近在给Swift应用写测试的时候踩了个坑:明明没设置任何断点,但测试执行到throw errorResult这行代码时,就会被Thread 23: EXC_BREAKPOINT (code=1, subcode=0x180d7bc70)这个异常强制打断。而且这个错误在业务逻辑里是已经被捕获处理的,这本来就是我要测试的预期行为,之前在Xcode 16.2里跑这些测试完全没问题,升级到16.4就突然出状况了。
先贴一下关键代码,方便大家排查:
抛出错误的核心方法
func doTheBiz<T: Decodable>( query: GQLQuery, serviceApiConfig: ServiceApiConfig ) async throws -> T { capturedQueryString = query.body if let successResult = successResult, let result = successResult as? T { return result } else if let errorResult = errorResult { throw errorResult // 程序在这里被中断 } else { throw NSError.generic() } }
调用并捕获错误的上下文代码
do { ... bizInfo = try await bizService.doTheBiz(...) ... self.state = .data } catch { if state == .data { return } self.handleFailureResponse(error) }
我还做了个测试:如果把throw errorResult改成抛出通用的NSError.generic(),测试就不会被中断,完全正常运行。有没有大佬能指点一下,怎么让测试时不要因为这个预期的错误抛出而被打断?
内容来源于stack exchange
相关产品推荐
相关产品推荐

