Catching “unhandled exception” caused by a Process
My code looks something like this:
Code:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim myProcess As New Process
myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden
myProcess.StartInfo.CreateNoWindow = True
myProcess.StartInfo.WorkingDirectory = "X:\folder\where\console\program\resides"
myProcess.StartInfo.FileName = "third_party_console_program.exe"
myProcess.StartInfo.Arguments = "some: arguments goes here"
myProcess.Start()
myProcess.WaitForExit()
MsgBox("Done")
End Sub
I am using Process to start a console program. What this console program does is, it would detect whether a particular device is connected via usb, and tries to read some block of data. But the problem is, when no devices are connected, it is giving an unhandled exception(this is thrown by the console_program. Not my WinForm program). When a device is connected, no problem is there !
I think it is probably trying to read from the usb, even when it doesn't detect any device. Since this console app is of a third party program, I couldn't do anything on it.
Instead what I am trying to do is, to catch the unhandled exception and output the message "Couldn't detect the device !"
But the normal Try..Catch block covered on the above piece of code won't work as I think the exception is thrown on a separate thread.
Any ideas on how to catch this ? Any tips or suggestions would be very helpful.
Thank you :)
Re: Catching “unhandled exception” caused by a Process
You may find that the ExitCode property of the Process will indicate whether the program exited normally or errored out. If not then you may have to redirect the StandardError stream of the Process.
Re: Catching “unhandled exception” caused by a Process
Quote:
Originally Posted by
jmcilhinney
You may find that the ExitCode property of the Process will indicate whether the program exited normally or errored out. If not then you may have to redirect the StandardError stream of the Process.
Thanks :wave:
I tried checking the ExitCode. But it is always returning a 0 (which is supposed to be returned only for for successful execution). Also tried redirecting error and output stream. But both are returning empty.
I have tried running the console program from Command Prompt(passing parameters). But there also, it gives the unhandled exception after echoing two lines:
Code:
XXXXXXXXXXX
Looking for usb interface devices
No device found
After these two lines echoed to cmd, after a 3 secs, it shows the unhandled exception ! When I close the error message, it goes back to the prompt.
That's how I assumed that the console program is trying to continue reading even after no devices are found ! So, any ways to catch this unhandled exception thrown by the console program ?
Re: Catching “unhandled exception” caused by a Process
I have tried this and also get same error as akhileshbc
VbAzza