I highly recommend watching James Gosling (@JamesGosling) talking on Devoxx 2022 about Java on IoT.
In particular this part:
https://youtu.be/NtrF_SiFQag?t=1393

I am a heavy user of this (anti?)pattern.

try {...} catch Throwable {
... // here are the hard but important things
}

Inside the catch clause, I typically follow "aviate, navigate, communicate".
1. Don't crash.
2. Restore functionality.
3. Communicate to user and developer what happened.

IoT in the Trenches, at Scale by James Gosling

YouTube