我应该包括什么来抛出bad_function_call异常?

use*_*838 -6 c++ exception std

主题中的问题.我试过这个:

throw new std::bad_function_call("!");
Run Code Online (Sandbox Code Playgroud)

得到下一个错误:

错误C2039:'bad_function_call':不是'std'的成员

错误C2061:语法错误:标识符'bad_function_call'

Lig*_*ica 8

这是C++ 11中的新增功能,来自标题<functional>.包括那个并祈祷你有一个足够新的编译器.

顺便说一句,您不应该动态分配异常.它的:

  • 无意义,
  • 内存分配异常的风险,以及
  • 容易使您的捕获网站比他们需要的更复杂.

内存通常用于存储直接抛出的异常对象,因此请使用它.写吧:

throw std::bad_function_call("!");
Run Code Online (Sandbox Code Playgroud)