![]() |
1
12
正如前面提到的,你通常会使用
我想这就是你不需要的原因
|
![]() |
2
6
正交性?正如您所展示的,您可以简单地将一次尝试嵌套在一次尝试中。(我想这就是IL级别的情况。) 也就是说,在未来的语言版本中,我们可能会考虑使用finally。 就我个人而言,我只需要几次,但当你确实需要它时,需要做额外的嵌套/缩进有点麻烦。一般来说,我发现我很少编写异常处理代码,通常只是一个或另一个(例如,最终恢复不变或其他事务语义,或在应用程序顶部附近“catch”记录异常或显示用户诊断)。 但是我认为对于语言设计来说没有太多的东西需要“阅读”。 |
![]() |
3
2
因为伟大的细节在 Expert .NET 2.0 IL Assembler Serge Lidin 参见:第14章,托管异常处理
第300页 尝试/捕获使用 过错 处理程序和try/finally使用 最后 处理程序。 见: ILGenerator.BeginFaultBlock Method
因此,所有的.NET语言都可以考虑使用句法surgar,因为f_是如此的新,所以它们还没有实现它。没有伤害,没有犯规。 |
![]() |
4
1
我将在回答中澄清我的意见。
|
![]() |
5
0
我想F可能是“反对”异常处理的。为了.NET的互操作性,它必须支持它们,但基本上, 函数编程中没有异常处理*。 . 抛出/捕获异常意味着执行甚至没有被类型系统注意到的“无处跳转”,这两种类型系统都从根本上违背了功能哲学。 可以使用纯函数(单元)代码来包装异常。所有错误都是通过值处理的,根据基础类型系统,并且没有跳跃/副作用。 而不是编写函数
这可能会引发任意的异常,您只需声明
这使得这一点通过其类型签名自动清除。 *这并不意味着我们不处理异常情况,它只是关于.NET/C++中异常处理的一种。 |
![]() |
Thomas · 使类型别名在F中不可互换# 2 年前 |
![]() |
sdgfsdh · 我该怎么说。使用异步转换函数进行收集? 6 年前 |
![]() |
Soldalma · 我可以实例化包含顶级副作用值的类吗? 6 年前 |
![]() |
matekus · F#-包含数字的字符串的自然排序 6 年前 |
![]() |
matekus · F#类型匹配-无法创建映射或匹配记录 6 年前 |
![]() |
Rob Lyndon · 未找到F#ProvidedTypes文件 6 年前 |
![]() |
red-swan · 如何将intro ML.Net演示翻译为F#? 6 年前 |
![]() |
jkone27 · F#-在编译时从字符串生成简单的空类型 6 年前 |