There are things called "hardware exceptions", which are specific to windows platform. You can use Microsoft specific:

Code:
__try 
{
   // guarded code
}
__except ( expression )
{
   // exception handler code
}
And catch structureed exceptions that are part of Win32 (access voilations, etc).


Usually

Code:
try
{
  // guarded code
}
catch (MyException& m)
{
  // handle my exception
}
catch(...)
{
  // Unknown exception and structured exception caught
  // Access violations will be caught here on MS platform
}
The (...) in this case is specific to the exception clause and not related to the ... in variable arguements. If you need to pass multiple variables in an exception, MyException class above would contain the members needed for that tasks (arrays, lists, buffers, etc).