异常IO具有结构:
Exception IO of {
name: string
....
...}
其他一些我不理解的论点。
我是否必须分配所有这些。我的意思是在此之后我该怎么做?
exception IO of {inputfile}
我通常定义异常然后加注。但我甚至没有用这种方式定义例外。
如果输入文件不存在,我想做的就是引发异常。我该怎么办?
谢谢
答案 0 :(得分:1)
是的,在创建Io类型的异常时,您必须提供所有三个字段。字段的含义在the documentation中解释:
这是I / O子系统中发生错误时引发的主要异常。 Io的组成部分是:
- name:读者或作者的名称组件。
- function:引发异常的函数的名称。
- cause:读取器或写入器引发的基础异常,或在流I / O级别检测到的异常。
一些标准原因是:
- OS.SysErr,如果实际系统调用已完成且失败。 *如果给出了不正确的论据,则下标。
- BlockingNotSupported
- NonblockingNotSupported
- ClosedStream
Io的原因字段不仅限于这些特殊例外。创建自己的读者或编写者的用户可能会引发他们喜欢的任何异常,这些异常将被报告为生成的Io异常的原因字段。
请注意,如果文件不存在,openIn
已经引发了Io
异常(函数为"openIn"
,文件名为SysErr
,{{1}}为因为你没有必要自己抚养。