mavericks: [Proposal] Global error handler for execute functions
I have the requirement to trace all errors in app, even if those are properly handled by the code and UI. So i need to create some global error handler for all execute
function, that will be called on Fail
reducer set. My proposal:
Add new property to MavericksViewModelConfig
with signature something like:
val executeErrorHandler: ((Exception) -> Unit)? = null
I’m not sure that should be called handler, since it wouldn’t have any impact on error handling, it’s just for logging/tracing purposes. Maybe name executeErrorLogger
would be more appropriate?
Next, i’d add the same field to MavericksViewModelConfigFactory
that would be passed down to configs.
In MavericksViewModel
i’d add call config.executeErrorHandler?.invoke(e)
after setState { reducer(Fail(e ...
for all execute
functions.
What do you think about that? If it’s fine i’ll create a PR with that.
Also, i have a minor question about error handling - is there a particular reason to catch Exception
instead of Throwable
?
About this issue
- Original URL
- State: open
- Created 3 years ago
- Comments: 22 (14 by maintainers)
So maybe an interface like this:
Default method implementations might be handy if someone wants to listen only to one/two of events. I can go through the codebase and find all places that can emit Async events and invoke proper methods there.
I can replace
Exception
withThrowable
in the same PR if that’s ok with you