let throw_error act like raise_error
fix matcher