Comments (2)
Yes, that's largely by design.
- Exceptions are expensive, and
- Typically UniValues do not change types at runtime, implying this pattern is a programmer error. That implies an assert() might be a better choice than an exception.
Other opinions and comments are solicited.
from univalue.
I didn't realize push methods already do have a return value indicating success. So failure is at least detectable, even if there is some reasoning for treating it like a programmer error instead of a runtime error.
Since it doesn't appear there are any asserts used so far in univalue code, and asserts aren't easy to catch in unit testing, and since there would be some overhead in throwing a std::logic_error, I think I'd be inclined not to make any changes, and will close this issue. Thanks for taking a look.
from univalue.
Related Issues (20)
- Parser accepts unseparated arrays
- UTF-8 not handled while writing HOT 1
- Parser uses isspace, isdigit which are locale dependent
- Generates invalid JSON in case of special floating point values
- No way to delete keys from an Object HOT 2
- No way to manipulate Array or Array elements HOT 1
- No support for wstring HOT 2
- Declare single-argument constructors explicit
- Update links to MIT license (use https)
- JSON value is not an object as expected HOT 1
- No way to check if key exists in array HOT 1
- Support move-semantics for UniValue HOT 8
- does not install in /usr/lib HOT 1
- Please issue new release 1.0.4 HOT 2
- Add documentation HOT 1
- Linking Error
- error: no viable conversion from 'std::atomic<int>' to 'const UniValue' HOT 4
- Yooo
- Uni
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 univalue.