TL;DR . One rule: catch only the failures you can act on, and let everything else reach your crash tool untouched. Expected failures get a type, a true sentence and a count. Bugs are never caught, so they arrive in Sentry with the line they were actually thrown from. The code is public in bp-bloc, bp-riverpod and bp-mvvm. I have been writing Flutter since 2018 and web since 2002. The worst bugs I have shipped were not the ones that crashed. They were the ones nobody told me about. Users hit t...