取消变量的行为

我有可能导致未定义行为的代码。我通过以下步骤对其进行了简化:

  1. 协程1正在等待并请求设备获取某些值(时间密集型),这些值应存储在变量“结果”中。
  2. 协程2现在删除变量“结果”。
  3. 协程1正在接收数据并想返回它们。

那么,Coroutine1的返回值和Future对象将如何处理?

  • 是否将其存储(在“禁止的”存储空间中)?
  • 会因为未来抛出异常而被抛弃吗?
  • 协程1的未来会被取消吗?但是,谁又收到设备的答案呢?
  • 如何捕捉此类错误?
评论