How to Exit an application properly on Error

R

Rob

I have the following code...

Try
da.Fill(ds,"myset")
Catch exc as exception
Msgbox("Check Connection string Info")
Ffrm.Dispose()
Application.Exit()
Exit Sub
EndTry

I noticed that the Application.Exit() alone did not exit the Sub
Procedure... so I added the Exit Sub. Why doesn't Application.Exit()
alone work ?

Thanks!
 
C

Cyril Gupta

Hello,

You could try End.

You can also set all forms and classes to Nothing

myForm = Nothing

And then call End. I think Application.Exit waits for the message queue to
finish proccessing... Maybe that is why it did not exit immediately.

Regards
Cyril Gupta
 
R

Rob

End works...

Regarding... "You can also set all forms and classes to Nothing"

Is there some generic code that one can run that will loop thru all "open"
objects and sets them to nothing ?

Thanks !
 
H

Herfried K. Wagner [MVP]

Rob said:
Regarding... "You can also set all forms and classes to Nothing"

Is there some generic code that one can run that will loop thru all "open"
objects and sets them to nothing ?

Setting the variables pointing to forms to 'Nothing' doesn't make much
sense. Instead, you may want to call the main form's 'Close' method and/or
the forms' 'Close' methods.
 
R

Rob

Thanks Michel,

So my question kind of still remains... before using an "End" or even "Exit
Sub"....

Is there some generic code that will loop thru all "open"
objects and clean them up ?



m.posseth said:
Using end to just end the lifecycle of an application is considered bad
coding practice

you should use End sparingly and only when you need and can terminate
immediatly ( normally you can`t , that is why it is bad coding practice
:)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vblr7/html/vastmend.asp

The right way to end an application is to clean / interupt the calling
chain



regards

Michel Posseth [MCP]



Rob said:
End works...

Regarding... "You can also set all forms and classes to Nothing"

Is there some generic code that one can run that will loop thru all
"open" objects and sets them to nothing ?

Thanks !
 
M

m.posseth

Rob ,,

Not that i know of ,,,, however it shouldn`t be necesary to do so cleaning
up the base object should result in the disposing of evenntuall satelites

if you need to use End to stop an app this means that something is wrong in
your apps design


regards

Michel Posseth [MCP]


Rob said:
Thanks Michel,

So my question kind of still remains... before using an "End" or even
"Exit Sub"....

Is there some generic code that will loop thru all "open"
objects and clean them up ?



m.posseth said:
Using end to just end the lifecycle of an application is considered bad
coding practice

you should use End sparingly and only when you need and can terminate
immediatly ( normally you can`t , that is why it is bad coding practice
:)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vblr7/html/vastmend.asp

The right way to end an application is to clean / interupt the calling
chain



regards

Michel Posseth [MCP]



Rob said:
End works...

Regarding... "You can also set all forms and classes to Nothing"

Is there some generic code that one can run that will loop thru all
"open" objects and sets them to nothing ?

Thanks !

Hello,

You could try End.

You can also set all forms and classes to Nothing

myForm = Nothing

And then call End. I think Application.Exit waits for the message queue
to finish proccessing... Maybe that is why it did not exit immediately.

Regards
Cyril Gupta
 
R

Rob

Let's say you have code that is going to fill a data set via a Command
object / stored proc...
If the connection string is bad (held in the config file) OR a stored proc
is missing (the one you are calling)... then for all intents and purposes my
program may as well shut down...

Do I only need to dispose of the Form ? what about any connections ? other
varibales ? What is left over as a "problem" if the application just "Ends"
at this point ?

Thanks,
Rob



m.posseth said:
Rob ,,

Not that i know of ,,,, however it shouldn`t be necesary to do so cleaning
up the base object should result in the disposing of evenntuall
satelites

if you need to use End to stop an app this means that something is wrong
in your apps design


regards

Michel Posseth [MCP]


Rob said:
Thanks Michel,

So my question kind of still remains... before using an "End" or even
"Exit Sub"....

Is there some generic code that will loop thru all "open"
objects and clean them up ?



m.posseth said:
Using end to just end the lifecycle of an application is considered bad
coding practice

you should use End sparingly and only when you need and can terminate
immediatly ( normally you can`t , that is why it is bad coding practice
:)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vblr7/html/vastmend.asp

The right way to end an application is to clean / interupt the calling
chain



regards

Michel Posseth [MCP]



End works...

Regarding... "You can also set all forms and classes to Nothing"

Is there some generic code that one can run that will loop thru all
"open" objects and sets them to nothing ?

Thanks !

Hello,

You could try End.

You can also set all forms and classes to Nothing

myForm = Nothing

And then call End. I think Application.Exit waits for the message
queue to finish proccessing... Maybe that is why it did not exit
immediately.

Regards
Cyril Gupta
 
M

m.posseth

Well in my opinion your program should in the described situation raise an
exception , and so shutdown

regards

Michel Posseth [MCP]



Rob said:
Let's say you have code that is going to fill a data set via a Command
object / stored proc...
If the connection string is bad (held in the config file) OR a stored
proc is missing (the one you are calling)... then for all intents and
purposes my program may as well shut down...

Do I only need to dispose of the Form ? what about any connections ?
other varibales ? What is left over as a "problem" if the application
just "Ends" at this point ?

Thanks,
Rob



m.posseth said:
Rob ,,

Not that i know of ,,,, however it shouldn`t be necesary to do so
cleaning up the base object should result in the disposing of evenntuall
satelites

if you need to use End to stop an app this means that something is wrong
in your apps design


regards

Michel Posseth [MCP]


Rob said:
Thanks Michel,

So my question kind of still remains... before using an "End" or even
"Exit Sub"....

Is there some generic code that will loop thru all "open"
objects and clean them up ?



Using end to just end the lifecycle of an application is considered
bad coding practice

you should use End sparingly and only when you need and can terminate
immediatly ( normally you can`t , that is why it is bad coding
practice :)

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vblr7/html/vastmend.asp

The right way to end an application is to clean / interupt the
calling chain



regards

Michel Posseth [MCP]



End works...

Regarding... "You can also set all forms and classes to Nothing"

Is there some generic code that one can run that will loop thru all
"open" objects and sets them to nothing ?

Thanks !

Hello,

You could try End.

You can also set all forms and classes to Nothing

myForm = Nothing

And then call End. I think Application.Exit waits for the message
queue to finish proccessing... Maybe that is why it did not exit
immediately.

Regards
Cyril Gupta
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top