bevy/docs
SpecificProtagonist e7e9973c80
Per world error handler (#18810)
# 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)
    …
```
2025-05-19 01:35:07 +00:00
..
cargo_features.md Per world error handler (#18810) 2025-05-19 01:35:07 +00:00
debugging.md
linters.md ✏️ Fix typos across bevy (#16702) 2024-12-08 01:18:39 +00:00
linux_dependencies.md Update linux_dependencies.md (#18523) 2025-03-25 01:51:18 +00:00
profiling.md Tracy GPU support (#18490) 2025-03-28 04:57:01 +00:00