我有调用 ::fgetpos 的代码,这会导致无法捕获的内核异常(我的 VS 2008 项目中有选项 /ehs)。但我不禁认为标准库例程不应该抛出这些异常。
更新:我尝试调用 ::fgetpos(0, &foo),这显然是错误的,而且我确实收到了内核级异常。我很困惑。为什么 C++ 标准库不执行最基本的参数检查(检查空指针)并引发 std::invalid_argument?
是否有任何标准库例程执行此类基本检查,或者它们是否都愉快地导致程序终止?
我有调用 ::fgetpos 的代码,这会导致无法捕获的内核异常(我的 VS 2008 项目中有选项 /ehs)。但我不禁认为标准库例程不应该抛出这些异常。
更新:我尝试调用 ::fgetpos(0, &foo),这显然是错误的,而且我确实收到了内核级异常。我很困惑。为什么 C++ 标准库不执行最基本的参数检查(检查空指针)并引发 std::invalid_argument?
是否有任何标准库例程执行此类基本检查,或者它们是否都愉快地导致程序终止?