You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-**BREAKING**: `EppoClient` constructor now takes `ConfigurationStore&` by reference instead of `std::shared_ptr<ConfigurationStore>`, allowing SDK consumers to choose their own synchronization strategy
17
+
- Constructor preconditions (null checks, size validations) now use `assert()` instead of throwing exceptions
18
+
- Internal functions now return `std::optional` or error codes instead of throwing exceptions
19
+
- Configured nlohmann/json with `JSON_NOEXCEPTION` to eliminate JSON parsing exceptions
20
+
21
+
### Added
22
+
23
+
- Full compatibility with `-fno-exceptions` projects
24
+
- Documentation on error handling and constructor preconditions
25
+
26
+
### Benefits
27
+
28
+
- 10-20% smaller binary size without exception support
29
+
- Better performance (no exception unwinding overhead)
30
+
- Compatible with embedded systems and other exception-free environments
31
+
- Simpler error handling model - always returns defaults and logs errors
32
+
33
+
### Migration Guide
34
+
35
+
If you were using v1.0.0:
36
+
37
+
1. Remove all `try-catch` blocks around SDK method calls - they no longer throw
38
+
2. Remove calls to `setIsGracefulFailureMode()` - this method no longer exists
39
+
3. Update `EppoClient` instantiation - pass `ConfigurationStore` by reference instead of as `shared_ptr`:
0 commit comments