F# 如何捕获所有异常

2024-02-20

我知道如何捕获特定异常,如下例所示:

let test_zip_archive candidate_zip_archive =
  let rc =
      try
        ZipFile.Open(candidate_zip_archive.ToString(), ZipArchiveMode.Read) |> ignore
      zip_file_ok
      with
      | :? System.IO.InvalidDataException -> not_a_zip_file
      | :? System.IO.FileNotFoundException -> file_not_found         
      | :? System.NotSupportedException -> unsupported_exception
  rc

我正在阅读一堆文章,看看是否可以在with,就像通配符匹配一样。这样的构造是否存在,如果存在,它是什么?


是的,你可以这样做:

let foo = 
  try
    //stuff (e.g.)
    //failwith "wat?"
    //raise (System.InvalidCastException())
    0 //return 0 when OK
  with ex ->
    printfn "%A" ex //ex is any exception 
    -1 //return -1 on error

这和C#的一样catch (Exception ex) { }

要放弃你可以做的错误with _ -> -1(与C#的相同catch { })

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

F# 如何捕获所有异常 的相关文章

  • 页面中某些超链接控件上的本地化资源未发生变化

    上面是正在开发中的网站的屏幕截图 我们有一个 DropdownList 控件 并在其 SelectedIndexChanged 上进行回发 然后我们更改站点区域性 然后加载相应的资源文件 DropDownList ASP NET 代码
  • 变量替换为字符串

    我可以做类似的事情吗 s said s blah name blah 在 VB NET 中 写字越来越痛苦name said blah blah 在VB NET 14 对于VS2015 中 您可以使用字符串插值 https msdn mic
  • Type.GetInterface 和嵌套类型

    我刚刚发现 Type GetInterface 和嵌套类型有一个非常奇怪的行为 以下示例代码将显示问题 我使用接口的 Type FullName 来检查给定类型是否派生自该接口 public interface IStandardInter
  • .net 中的 deflate、gzip 和 zlib 的一个库

    首先 我们来定义一些容易混淆的术语 deflate compression algorithm zlib header deflate trailer gzip header deflate trailer 我正在寻找一个基本上可以让我执行
  • 从架构上来说,我应该如何用更易于管理的内容替换非常大的 switch 语句?

    EDIT 1 忘记添加嵌套属性曲线球 UPDATE 我选择了 mtazva 的答案 因为这是我的具体案例的首选解决方案 回想起来 我用一个非常具体的例子提出了一个一般性问题 我相信这最终让每个人 或者也许只是我 对问题到底是什么感到困惑 我
  • 为什么同时存在 System.Net.Http 和 System.Web.Http 命名空间?

    这只是一个简单的问题 因为我正在研究 NET 中可用的各种类库 我注意到有一个System Net Http命名空间和一个System Web Http命名空间 这两个命名空间都有什么用途 创建两个看似不明确的命名空间的动机是什么 是否有任
  • LINQ to Entities 区分大小写的比较

    这不是 LINQ to Entities 中区分大小写的比较 Thingies First t gt t Name ThingamaBob 如何使用 LINQ to Entities 实现区分大小写的比较 那是因为你正在使用LINQ 实体最
  • 在mysql连接字符串中添加应用程序名称/程序名称[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在寻找一种解决方案 在连接字符串中添加应用程序名称或程序名称 以便它在 MySQL Workbench 中的 客户端连接 下可见 SQL
  • 如何使正则表达式匹配不区分大小写?

    我有以下正则表达式加拿大的邮政编码 http en wikipedia org wiki Postal codes in Canada ABCEGHJKLMNPRSTVXY 1 d 1 A Z 1 d 1 A Z 1 d 1 它工作正常 但
  • 如何使用 C# 连接到 Asana Rest API?

    有谁有使用 C 连接到 Asana API 的代码片段吗 他们的网站上有一个 Hello World 应用程序 但不幸的是它是用 ruby 编写的 https asana com developers documentation examp
  • 为什么 dotnet 的 char.IsLower() 是静态方法?

    这似乎违背了每一个设计准则 接受 T 类型的单个参数的静态方法通常应该只是一个成员方法 这太奇怪了我实际上不得不发布一个StackOverflow问题 https stackoverflow com questions 389100 is
  • 使用 Amazon SQS 的 .net 应用程序示例

    我正在寻找一个示例 Net 应用程序 该应用程序会持续检查 Amazon SQS 是否有新消息 并在发现新消息时执行一项操作并将其从队列中删除 我的目标是让一个在 EC2 上运行的应用程序监视我的 SQS 队列中的新消息 当找到一条消息时
  • 我的 .NET 库列表中缺少 System.Windows.Data

    您好 我想使用 System Windows Data IValueConverter 但是当我尝试在 VS2010 中添加对 System Windows Data 的引用时 我只看到 System Windows Forms 和 Sys
  • 如何使用 .Net Core 和 VSCode 在调试模式下执行测试?

    如何使用 Net Core 和 VSCode 在调试模式下执行测试 我当前正在命令行上运行以下命令 dotnet Test 但是 这不是在调试模式下执行测试 我要附加调试器吗 如果是这样 怎么办 如有必要 请将测试项目转换为控制台应用程序
  • 标准化 C# 中的换行符

    我有一个数据流 可能包含 r n r n n r 或它们的任意组合 有没有一种简单的方法来规范化数据 使它们全部变成 r n 对 使显示更加一致 所以会产生这种转换表 r gt r n n gt r n n n gt r n r n n r
  • .NET 标准与 .NET 核心

    我已经了解了 NET Standard 和 NET Core 之间的区别 但我真的不知道区别是什么 或者何时选择 NET Standard 库项目以及何时选择 NET Core 库项目 我读到 NET Standard 是为了确保一组 AP
  • 访问 XAML 中的静态字段

    如何在 xaml 中引用类的静态属性 换句话说 我想做这样的事情 Class BaseThingy public static readonly Style BaseStyle
  • 如何使用 .NET 以编程方式沙箱进程

    我计划设计一个系统 本质上允许用户在我的机器上运行 PHP Ruby 等脚本代码 我想将它们放入沙箱中 以防止它们访问机器的关键方面 哪些 NET API 可用于此目的 我计划从主流程创建一个子流程 并希望以编程方式从主流程中沙箱该子流程
  • 如何证明 .NET CLR JIT 每次运行只编译每个方法一次?

    There s 一个老问题 https stackoverflow com questions 1255803 does the net clr jit compile every method every time 1255832每次询问
  • 如何创建可以像 UserControl 一样编辑的 TabPage 子类?

    我想创建一个包含一些控件的 TabPage 子类 并且我想通过设计器来控制这些控件的布局和属性 但是 如果我在设计器中打开子类 我将无法像在 UserControl 上那样定位它们 我不想创建一个带有 UserControl 实例的 Tab

随机推荐

  • 如果数据框中所有列都相等,则 Pandas 设置值

    我有这样的数据框 df pd read csv myfile delimiter df df set index date print df NET 0 NET 1 NET 2 NET 3 NET 4 NET 5 NET 6 NET 7 N
  • *ngFor 无法读取未定义的属性

    你好 我有这个界面 export interface Apartment id number address string rooms Room 该组件 export class HomeComponent implements OnIni
  • 自定义 ng-enter 指令不将 $event 从 html 传递到控制器

    我正在使用一个自定义指令来检测用户何时按下 Enter 键 然后调用 ngSubmit 中调用的相同函数周围的表单元素 下面是我的问题的演示 我需要从控制器内访问事件 但它始终是未定义的 以前有人遇到过这个问题吗 问题是什么 为什么会发生这
  • 不等于(!=)运算符无法在 C++ 中正确使用 char [重复]

    这个问题在这里已经有答案了 该代码无法正常工作 请帮助我 即使我输入了正确的字符 它仍然要求 输入正确的数字 并且它不评估条件 include
  • xjc:两个声明导致 ObjectFactory 类中发生冲突

    运行以下命令xjc命令引发错误 xjc ftp ftp ncbi nih gov bioproject Schema Core xsd parsing a schema compiling a schema ERROR Two declar
  • cakePHP 重定向 $this->referer() 无法正常工作

    我有一个 TestController 视图文件 并在其中添加了评论表单 我的页面所在页面的 URL 是 www example com test view slug 现在评论表单发布在 URL www example com 上 comm
  • 即使上传了文件,Laravel Input::hasFile('image') 也会返回 false

    我有一个用于图像上传的表单字段 我用 files gt true 打开它 如下所示 Form label image Image Form file image 在我的控制器中 我想检查文件是否已上传并对其执行某些操作 if Input h
  • IDEA的logcat过滤器可以自动识别正在运行的应用程序吗?

    我找不到这个或 IDEA还没有像 Eclipse 很久以前那样实现了智能过滤器 当我看着logcatIDEA 11 中的选项卡 我没有看到它自动识别正在运行的应用程序并将其添加到All Messages 就像 Eclipse 对每个正在运行
  • JAR 文件不从 ext 加载类文件

    我在Linux系统上安装了JDK 1 6 JAVA HOME目录是 usr java jdk1 6 0 07 我在 Eclipse 上构建了 JAVA HOME 的路径 它通过 Eclipse 顺利运行并加载所有第三方 JAR 文件 usr
  • 预先添加文件的某些行

    我想创建一个脚本来注释掉 Mac OS X 主机文件中包含的行 com 还有一个可以扭转它 So this 127 0 0 1 foo com 127 0 0 1 bar com 127 0 0 1 baz 127 0 0 1 qux 会成
  • CouchDB 附件的自定义属性

    我试图在单个 CouchDB 文档中存储多个独立附件 并为每个附件分配任意属性 即描述 有这样做的约定吗 据我所知 我无法将它们插入 attachments直接构造 提前致谢 您无法修改其中的任何内容 attachments直接使用 因为它
  • 更新特定领域模型属性?

    如何仅更新某些领域模型属性 而不是尝试使用一次又一次地保存完整的领域模型copyToRealmOrUpdate public class User extends RealmObject PrimaryKey public String i
  • Python数据结构的内存大小

    如何找到Python数据结构的内存大小 我正在寻找类似的东西 sizeof 1 hello 2 world 如果它能递归地计算每件事 那就太好了 但即使是基本的非递归结果也有帮助 基本上我想了解各种实现选项 例如元组与元组 列表对比类在内存
  • Youtube IFrame API 来源不受信任

    正如标题所示 我正在使用 IFrame API 我一直在遵循指南API参考 https developers google com youtube iframe api reference 它对我有用 但我发现出现了一些警告并希望解决它们
  • 仅使外部白色透明

    我正在使用 imagick 和 php 来修改上传的图像 我想去除图像周围的白色 使其具有透明背景 使用这个 val 65535 15 val intval val 1 divide by 1 means accept full fuzz
  • 如何从oracle表的多个分区中选择数据

    我正在尝试从分区表中的多个分区中选择数据 它适用于单个分区 select from table partition ParititonName 但不能选择多个分区 select from table partitions Part1 par
  • 添加自定义转换类型以进行字符串格式化

    python 中是否有向字符串格式添加额外的转换类型 使用的标准转换类型 基于字符串的格式化是这样的s对于字符串 d我想要做的是添加一个新字符 我可以为其指定一个自定义处理程序 例如 lambda 函数 该处理程序将返回要插入的字符串 例如
  • 在 C# 中将列表设置为只读

    我有这个示例代码 我想要做的是使 Nums 值只能使用 AddNum 方法写入 namespace ConsoleApplication1 public class Person string myName N A int myAge 0
  • ExecutorService 超时但不阻塞主线程

    我想在有时间限制的后台执行一些工作 问题是 我不想阻塞主线程 简单的实现是有两个执行器服务 一个负责安排 超时 第二个负责完成工作 final ExecutorService backgroundExecutor Executors new
  • F# 如何捕获所有异常

    我知道如何捕获特定异常 如下例所示 let test zip archive candidate zip archive let rc try ZipFile Open candidate zip archive ToString ZipA