【发布时间】:2017-03-23 14:33:20
【问题描述】:
在 Cyclops React “尝试使用资源”块中,我想将 IOException 映射到自定义异常类型。我也用 Javaslang 尝试过,但似乎不太灵活,因为它对所有异常都一视同仁。
代码示例:
private static Try<String, ConnectionError> readString() {
// Socket is a thread-local static field
final Try<String, IOException> string = Try.catchExceptions(IOException.class)
.init(() -> new BufferedReader(new InputStreamReader(socket.get().getInputStream())))
.tryWithResources(BufferedReader::readLine);
return string.isSuccess() ? Try.success(string.get()) :
Try.failure(new ConnectionError("Could not read from server", string.failureGet()));
}
这可以用更优雅的方式完成吗?或者没有任何意义,最好返回Try<String, IOException>?
免责声明:我是一个使用 Cyclops React 库和一般函数式编程的新手,所以我可能对概念有严重的误解。
【问题讨论】:
标签: java functional-programming vavr cyclops-react