在 Cyclops React “Try with Resources”块中,我想将 an 映射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 库和函数式编程的新手,所以我可能对概念有严重的误解。