THROW_ERROR() macro instead of inline function