C++函数遇到throw,返回值还是定义的那个么?

int fun(int x)
{
    if(x==1)
    {
        throw "err";
        return 1;
    }
    return 0;
} 

例如这个代码:如果传进来的x=1,那么函数的返回值是:int,char*,还是其他?

如果是main,返回的值是随机的,return 1不执行
如果上层函数没有catch,程序中止运行,谈不上有返回值