Handling Errors

If you are writing a C++ application, the COM interoperability layer translates the exceptions thrown by the Compute Cluster Pack (CCP) to HRESULT values. The CCP-specific HRESULT values are not documented. Instead of testing for specific HRESULT values, test only for success or failure.

If an error occurs, you can use the ICluster::get_ErrorMessage, IJob::get_ErrorMessage, and ITask::get_ErrorMessage methods to get a description of the error. When the status of a job or task is Failed, the error message contains the description of the run-time error that occurred.

The following C++ example shows how to get the description when an error occurs.

hr = pCluster->SubmitJobs(pJobIds, 
                          _bstr_t(L"domain\\username"), 
                          NULL, 
                          VARIANT_TRUE, 
                          0); 
if (FAILED(hr))
{
  BSTR bstrMessage = NULL;
 
  wprintf(L"pCluster->SubmitJobs failed.\n");
  hr = pCluster->get_ErrorMessage(&bstrMessage);
  wprintf(L"%s\n", bstrMessage);
  SysFreeString(bstrMessage);
}

Using CCP