1

I wrote an application that loops through a set of records and prints two things.

One is a report from SSRS wich works correctly.

The other is a drawing that uses a COM object to print. The COM object randomly fails and causes the program to quit.

Is there a way to stop it from killing the entire program when the COM Object fails? I have tried catch every exception at every level and it still does not work.

3 Answers 3

1

Do you have the code of COM object that you are calling. If you have code then check whether there any exit command on failure.

Sign up to request clarification or add additional context in comments.

7 Comments

I don't have the code only the documentation and it does not mention any exit commands listed.
If it is a exe then I think, it should not exit on failure. This happens only if it is a dll
It is a dll. I found some delegates labeled OnFailedLoadingDocumentEventHandler, OnFailedPrintingDocumentEventHandler, and OnFailedSavingDocumentEventHandler. I may be able to use these to stop the errors.
Whether your application gets the control before exit or it just exists in the dll. If you are getting the control before exist can you check the return value of the call?
It has OnFinishedLoading and OnFinishedPrinting methods that I am using to print and dispose with but it does not return a value. The developer states in the documentation that it spawns a new thread to load the document and referencing it before it has finished could cause crashes.
|
0

Are you using the COM object from multiple threads? You should only access the COM object from a single thread with a message pump. In my experience this can cause weird instability which cannot be trapped via a try-catch.

1 Comment

This only applies if it's an STA (single-threaded apartment) object.
0

It sounds like the issue maybe with the com object itself and not your code. If this is the case then if the com object does not throw an error then you will not be able to catch one.

Kind Regards

Tony Smith-Brewster

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.