Comments (4)
Thanks for your suggestions.
orElseThrow
should fit your use case (you can mapErr
the failure state to a Throwable, then call orElseThrow
).
Your trying
is mostly the same as runCatching
. Not a huge fan of the isInstance
check going on in the catch
statement though.
from kotlin-result.
Just saw that orElseThrow
got added a few months ago. We've previously built a custom getOrThrow
as well
fun <T> Result<T, Exception>.getOrThrow(): T =
this.mapBoth({ it }, { throw it })
The most important distinction from orElseThrow
is the user being able to instantly use the Ok
value, without another call to unwrap
(or the raw use of the value
property of the Ok
type) being needed. As @efenderbosch mentioned, the use case for this is a boundary to e.g. a framework, in our case Spring @Scheduled
functions.
It would certainly be nice to have first party support in the library for this.
from kotlin-result.
Yeah, neither am I. Any suggestions on how to fix that?
from kotlin-result.
Seems like it's in the stdlib Result, so probably worth adding. Will accept a PR, or get around to it in the new year otherwise.
from kotlin-result.
Related Issues (20)
- Please Refactor to Use Kotlin Result For 1.5+ HOT 4
- Master doesn't compile in local HOT 2
- Struggle to run Gradle Check locally HOT 3
- Use of runCatching and coroutines breaks structured concurrency HOT 6
- Migrate to new kotlinx-coroutines-test API
- iosSimulatorArm64 and macOsArm64 support HOT 22
- Rename Result to Either HOT 7
- Assertion helpers for tests HOT 3
- Feature request: mingwX86 target HOT 2
- Extensions for Kotlin Flow? HOT 7
- About component1() and 2 HOT 2
- Best practices for integrating with Flow<T> HOT 1
- ensureNotNull-alike binding scope extensions HOT 15
- e: Could not load module <Error module> HOT 6
- Recovery extension HOT 3
- Consider using consistent "error" naming over "failure"? HOT 2
- Consider adding zipOrAccumulate? HOT 13
- Documentation of order of elements in Iterable.kt HOT 2
- Discuss: Use coroutines instead of exceptions for binding HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kotlin-result.