说到throw语句,大家的第一反应是:用来抛出异常。有throw必须要有try语句下的catch子句。……打住,throw语句的作用其实是:抛出代码的控制权,同时附带传递一些信息。
比方说:
throw int(9);
没问题。
再比如:
throw string("Hello");
也没问题。
不信,上机试试吧,一定会让你明白的。
同样,catch语句捕捉的信息类型也不只是runtime_error一类的异常,而是涵盖了大量的、不同的类型,比如int,比如string,再比如char。
因为throw和catch是内置语句,所以没有类型限制。