![]() # Objective [see original comment](https://github.com/bevyengine/bevy/pull/18801#issuecomment-2796981745) > Alternately, could we store it on the World instead of a global? I think we have a World nearby whenever we call default_error_handler(). That would avoid the need for atomics or locks, since we could do ordinary reads and writes to the World. Global error handlers don't actually need to be global – per world is enough. This allows using different handlers for different worlds and also removes the restrictions on changing the handler only once. ## Solution Each `World` can now store its own error handler in a resource. For convenience, you can also set the default error handler for an `App`, which applies it to the worlds of all `SubApp`s. The old behavior of only being able to set the error handler once is kept for apps. We also don't need the `configurable_error_handler` feature anymore now. ## Testing New/adjusted tests for failing schedule systems & observers. --- ## Showcase ```rust App::new() .set_error_handler(info) … ``` |
||
---|---|---|
.. | ||
.gitkeep | ||
entity_representation.md | ||
generic-option-parameter.md | ||
merge_observerState_observer_single_component.md | ||
observers_may_not_be_exclusive.md | ||
overflowclipbox_default_is_now_paddingbox.md | ||
per-world-error-handler.md | ||
remove_archetypecomponentid.md | ||
remove_deprecated_batch_spawning.md | ||
rename_StateScoped.md | ||
simple_executor_going_away.md | ||
system_set_naming_convention.md |