抛出std :: exception(或衍生类型)的其他东西有什么好处吗?

Gui*_*e07 3 c++ exception-handling

是否有任何优点或用例抛出std :: exception(或衍生类型)的其他东西.

例如throw 1;throw "error";

换句话说,为什么c ++标准允许它.

mas*_*oud 5

根据§15.1[除]:

异常处理提供了一种将控制和信息从执行线程的点传输 到与先前由执行传递的点相关联的异常处理程序的方法.

单词信息说明了一切,它可以是诸如对象,数字等所有内容.

标准中没有任何内容表明你必须抛出std::exception.换句话说,也许有人想要抛出自己的异常对象.

也许有人想要使用异常处理来处理远离正常异常的事情.