How is catching bugs at runtime and dynamically typed language related?
In fact I've had (a lot) better experience debugging mpy apps than Arduino ones (that's the only low level embedded experience I have)
I mostly just let stuff fail, and have them restart gracefully (like the erlang guys)