异步会话类型:异常与多方交互
1. 交互异常的会话类型
在处理会话类型时,引入交互异常是一个重要的扩展。当在通道 κ 上发送值 5 并抛出异常时,系统会忽略 5 ,转而处理包裹内的 tt 。
1.1 异常细化示例
考虑进程 R :
R = try{ try{ throw } catch { (κ, λ) : Q1 } } catch { κ : Q2 } | κ →0 κ : † | κ →0 κ : L
进程 R 可能在内部的 try-catch 块中抛出异常,也可能接收远程异常。经过一系列操作(省略部分队列),有如下转换:
R −→≡try{ (κ, λ){[Q1]} | κ →0 κ : † :: L } catch { κ : Q2 } | κ →0 κ : † −→
(κ, λ){[Q1]} | κ →0 κ : † :: L | κ →0 κ : † −→(κ, λ){[Q1]} | κ →0 κ : † :: L | κ →1 κ : ϵ
1.2 类型语法
类型语法扩展了标准会话类型,新增了 α{[β]} 这种 try-catch
超级会员免费看
订阅专栏 解锁全文
6

被折叠的 条评论
为什么被折叠?



