Stick to Result<T,E>.
> Users would rather see an error saying “whoopsie, maybe try that again later” than for the program to exit
To achieve this, you need to catch panics. Rust does not use Result for things the OP is talking about like asserts.