chapter8_1.cpp

来自「这个是VC实例教程第8章节的第一个实例的源代码」· C++ 代码 · 共 78 行

CPP
78
字号
#include <iostream.h>

class CExcept
{
public:
	CExcept(int ExCode)
	{
		m_ExCode = ExCode;
	}

	int GetCode()
	{
		return m_ExCode;
	}
private:
	int m_ExCode;
};

void main()
{
	char ch;

	try
	{
		cout << "at begining of try block" << '\n';
		cout << "throw 'char *' exception? (y/n):";
		cin >> ch;
		if(ch == 'y' || ch == 'Y')
			throw "error description";

		cout << "throw 'int  1' exception? (y/n):";
		cin >> ch;
		if(ch == 'y' || ch == 'Y')
			throw 1;

		cout << "throw 'int  2' exception? (y/n):";
		cin >> ch;
		if(ch == 'y' || ch == 'Y')
			throw 2;

		cout << "throw 'class CException' exception? (y/n):";
		cin >> ch;
		if(ch == 'y' || ch == 'Y')
			throw CExcept(5);

		cout << "throw 'double' exception? (y/n):";
		cin >> ch;
		if(ch == 'y' || ch == 'Y')
			throw 3.14159;
		cout << "at end of try block(no exception thrown" << '\n';
	}

	catch(char *ErrorMsg)
	{
		cout << "'char *' exception thrown; exception message: " << ErrorMsg << '\n';
	}

	catch(int ErrorCode)
	{
		cout << "'int' exception thrown; exception code: " << ErrorCode << '\n';
	}

	catch(CExcept Except)
	{
		cout << "'class CExcept' exception thrown; code: " << Except.GetCode() << '\n';
	}

	catch(...)
	{
		cout << "unknown type of exception thrown" << '\n';
	}

	cout << "after last catch block" << '\n';
}



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?