You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 09:48:01