分类
计算机知识日志

计算机应用——未经处理的异常 char

阁主在尝试抄书上的代码时,遇到一个错误,困扰了好久,现在写出来,方便有同样境遇的同志们。

阁主用的是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;
	}
}