0

异常 IO 具有以下结构:

Exception IO of {
name: string
....
...}

其他一些我不明白的论点。

我必须分配所有这些吗?我的意思是这之后我该怎么办?

exception IO of {inputfile}

我通常定义异常然后引发。但我什至没有以这种方式定义异常。

如果输入文件不存在,我要做的就是引发异常。我在这里做什么?

谢谢你

4

1 回答 1

1

是的,在创建 Io 类型的异常时,您必须提供所有三个字段。文档中解释了字段的含义:

这是 I/O 子系统中发生错误时引发的主要异常。Io 的组成部分是:

  • name:读取器或写入器的名称组件。
  • function:引发异常的函数的名称。
  • 原因:读取器或写入器引发的底层异常,或在流 I/O 级别检测到的异常。

一些标准原因是:

  • OS.SysErr 如果实际系统调用已完成但失败。*如果给出了格式错误的参数,则下标。
  • 阻塞不支持
  • 非阻塞不支持
  • 闭流

Io 的原因字段不限于这些特定的异常。创建自己的读取器或写入器的用户可以引发任何他们喜欢的异常,这将被报告为生成的 Io 异常的原因字段。

请注意,如果文件不存在(作为函数,文件名作为名称,a作为原因),则openIn已经引发异常,因此您无需提出自己的异常。Io"openIn"SysErr

于 2012-10-20T17:15:50.447 回答