#include <iostream>
using namespace std;

struct Resource
{
	Resource(int id)
	{
		
		m_id = id;
		if(id == 3)
		{
			throw "Error during initialize: id can't be 3";
		}
		std::cout << "initialize resource with id: " << id << std::endl;

	}
	
	~Resource()
	{
		std::cout << "Destroy Resource with id: " << m_id << std::endl;
	}
	
private:
    int m_id;
};

struct ResourceWrapper
{
	ResourceWrapper(int id1, int id2, int id3, int id4, int id5)
	: m_rc1(id1),
	  m_rc2(id2),
	  m_rc3(id3),
	  m_rc4(id4),
	  m_rc5(id5)
	{
	}
	
private:
   Resource m_rc1;
   Resource m_rc2;
   Resource m_rc3;
   Resource m_rc4;
   Resource m_rc5;
};

int main() 
{
	
	{
		std::cout << "without errors:" << std::endl;
		ResourceWrapper rc(5,6,7,8,9);
	}
	
	std::cout << "==========================" << std::endl;
	try
	{
		std::cout << "with errors:" << std::endl;
		ResourceWrapper rc(1,2,3,4,5);
	}
	catch(const char* error)
	{
		std::cout << "Error: " << error << std::endl;
	}
	// your code goes here
	return 0;
}