C++ 异常处理错误输出



我在 Dev C++ 中编写了以下C++代码:

// Program for exception handling
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
int a = 10;
int b = 0;
int c;
// try block activates exception handling
try
{
if (b == 0)
{
// throw custom exception
throw "Division by zero not possible!";
c = a / b;
}
}
catch (char* ex)
{
cout << ex;
}
getch();
return 0;
}

输出应为"不可能除以零"。但是输出是"在抛出'char const*'实例后终止调用的。

如何纠正此代码?

该消息说您已经抛出了 charconst* 的实例,但您正在捕获char* 的实例

尝试更改

catch (char* ex)

catch (char const* ex)

看看这是否有帮助...

你扔了一个char const*,但只接住了一个char*.将 catch 语句中的类型更改为char const*,一切都很好。

最新更新