异常 IO 具有以下结构:
Exception IO of {
name: string
....
...}
其他一些我不明白的论点。
我必须分配所有这些吗?我的意思是这之后我该怎么办?
exception IO of {inputfile}
我通常定义异常然后引发。但我什至没有以这种方式定义异常。
如果输入文件不存在,我要做的就是引发异常。我在这里做什么?
谢谢你
是的,在创建 Io 类型的异常时,您必须提供所有三个字段。文档中解释了字段的含义:
这是 I/O 子系统中发生错误时引发的主要异常。Io 的组成部分是:
- name:读取器或写入器的名称组件。
- function:引发异常的函数的名称。
- 原因:读取器或写入器引发的底层异常,或在流 I/O 级别检测到的异常。
一些标准原因是:
- OS.SysErr 如果实际系统调用已完成但失败。*如果给出了格式错误的参数,则下标。
- 阻塞不支持
- 非阻塞不支持
- 闭流
Io 的原因字段不限于这些特定的异常。创建自己的读取器或写入器的用户可以引发任何他们喜欢的异常,这将被报告为生成的 Io 异常的原因字段。
请注意,如果文件不存在(作为函数,文件名作为名称,a作为原因),则openIn
已经引发异常,因此您无需提出自己的异常。Io
"openIn"
SysErr