Comments (2)
Nice idea, though we risk breaking enclosing error-handling code by throwing away the exception type.
from freebuilder.
That's true, it's a breaking change. But I would consider an unbuildable nested property as an illegal state of top-level builder (caused by an illegal state of the nested builder), just like an unset property. And in some (typical?) cases it conceptually is unset, like nested2
above. From this perspective just passing nested builder errors is inconsistent to handling of concretely unset properties, making this issue look like a bug rather than an enhancement.
In cases where retaining compatibility with enclosing error-handling code is required, I think all build()
methods might be overridden to catch the exception and rethrow the cause (recursively if nested builders are out of own control). To identify such exceptions, the message could (and probably should anyway) be formatted something like Unbuildable: <property-name>; <cause-message>
.
from freebuilder.
Related Issues (20)
- Invalid code generated for generic value types with type bounds HOT 1
- Unchecked warnings in code generated for GWT-serializable generic types
- Add support for singularizing plural method names HOT 2
- Evaluate optimizability of internal EnumSet HOT 1
- deserializing mongodb document HOT 1
- Support remaining Guava collections HOT 4
- IgnoredByEquals doesn't work HOT 6
- Alternative name for build method HOT 9
- IntelliJ, Auto-Discover Processors from Maven HOT 1
- Nested buildable types should use the enclosing type's defaults
- jackson serializer error HOT 2
- Support derived fields HOT 4
- Enhancement: Add nested builder functions HOT 2
- mergeFrom should support partials
- Support for @JsonAlias
- Not able to build on jdk 20
- Custom getters inside builder HOT 5
- JPMS HOT 10
- Java 21 throws warning with idiomatic Freebuilder usage HOT 5
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 freebuilder.