You should use a bool to know whether an error has occurred, and to `Throw()` only in the case `t_soft_error` is not true, like it was done before