小白求助 throw抛异常问题
#include "iostream"using std::endl;
using std::cout;
using std::cin;
void m_strcpy(char* from,char* to)
{
if (from == nullptr)
{
throw "源操buf错误";
}
if (to == nullptr)
{
throw "目标buf错误";
}
if (*from == 'A')
{
throw "copy过程出错";
}
while (*from != '\0')
{
*to = *from;
to++;
from++;
}
*to = '\0';
}
void main()
{
char buf1[] = "ABCDEFG";
char buf2;
try
{
m_strcpy(buf1, buf2);
}
catch (char* e)
{
cout << e << "char类型错误" << endl;
}
cout << buf1 << endl;
cout << buf2 << endl;
system("pause");
}
如图 一运行 这里就抛异常 if (*from == 'A')
{
throw "copy过程出错";// 这个地方抛出的异常
}
*from 就等于 buf1 就是 A 上善若水··· 发表于 2020-5-26 15:33
if (*from == 'A')
{
throw "copy过程出错";// 这个地方抛出的异常
这个我知道 只是我后面写的catch代码为啥不能捕捉异常? catch (char* e) ; 这个里面的变量不是随便写的,你去查一下就知道了·· catch (char* e)
改成
catch (const char* e)
页:
[1]