我有以下处理多个流的方法,现在我想在功能样式中添加异常处理。有什么建议吗?
private def convertToByte(json: String): Array[Byte] = {
val bytes= json.getBytes("UTF-8")
val bin: ByteArrayInputStream = new ByteArrayInputStream(bytes)
val bos: ByteArrayOutputStream = new ByteArrayOutputStream()
val gzip: GZIPOutputStream = new GZIPOutputStream(bos)
val buff = new Array[Byte](1024)
var len = bin.read(buff)
while(len != -1)
{
gzip.write(buff, 0, len)
len = bin.read(buff)
}
gzip.finish()
bin.close()
bos.close()
gzip.close()
bos.toByteArray
}
我想在finally块中包含所有调用close,同时,如果发生异常,我想捕获它并将错误消息作为字节数组返回。在使用Java之后,我的手自动采用命令式方式将代码片段包装在try catch中,但我正在考虑通过将其包装在更高阶函数中来以函数方式编写它。但是我开始坚持了。有什么指针吗?