看起来每个涉及资源的操作(包括隐式close()调用)都被视为try {}块的一部分。甚至从技术/语法上考虑,这些资源都在{}括号之外提到。
这意味着,如果在close()期间抛出IOException,它将被与try关联的catch()子句捕获(或者向上传播)。
关于可能需要引发异常的 原因 :close()可能导致flush(),flush()可能导致write(),而write()可能失败。

看起来每个涉及资源的操作(包括隐式close()调用)都被视为try {}块的一部分。甚至从技术/语法上考虑,这些资源都在{}括号之外提到。
这意味着,如果在close()期间抛出IOException,它将被与try关联的catch()子句捕获(或者向上传播)。
关于可能需要引发异常的 原因 :close()可能导致flush(),flush()可能导致write(),而write()可能失败。