#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include "Exception.h"

class MyClass {

public:

  MyClass(const char *name);
  ~MyClass();

protected:

  int _a;
  char *_name;
};


MyClass::MyClass(const char *name)
{
  _name = strdup(name);

  throw Exception("Throwing exception from MyClass constructor");

  _a = 9;
}


MyClass::~MyClass()
{
  fprintf(stderr, "In MyClass destructor...\n");
  free((void *)_name);
}


int main(int argc, char **argv)
{
  MyClass *myObject = 0;

  try {
    myObject = new MyClass("mine");
  }
  catch (Exception e) {
    fprintf(stderr, "Caught Exception: %s\n", e.msg);
  }
  catch (...) {
    fprintf(stderr, "Caught some exception!\n");
  }

  fprintf(stderr, "myObject ptr=0x%x\n", myObject);

  delete myObject;
    
  return 0;
}

