阁主在尝试抄书上的代码时,遇到一个错误,困扰了好久,现在写出来,方便有同样境遇的同志们。
阁主用的是visual studio 2017 ,书上的例子是throw一个字符串,然后catch住并回显。但是在阁主码出来实验的时候出了问题。
代码如下:
#include "pch.h" #include <iostream> int main() { try { throw "这是一个异常"; } catch (char *str) { std::cout <<str << std::endl; } }//VS2017编译后运行报错:有未经处理的异常: Microsoft C++ 异常: char,位于内存位置0x0000xxxx处。
经过多次测试及搜索,终于找到问题的解决办法。可行代码如下:
#include "pch.h" #include <iostream> int main() { try { throw "这是一个异常."; } catch (const char *str) { std::cout << str << std::endl; } }
或者
#include "pch.h" #include <iostream> int main() { try { char str[] = "这是一个异常."; throw str; } catch (char *str) { std::cout <<str << std::endl; } }