question error handling

  • Thread starter Pierre via OfficeKB.com
  • Start date
P

Pierre via OfficeKB.com

hi experts,

i have a simple error handling question.

i have the following code:

private sub test()
on error goto errorhandling

my stuff

exit sub
errorhandling:
My error
end sub

Here's my question:
if in 'my stuff' i have, next to some calculation code, a module i want tot
execute, do i have to put the 'on errror' codelines also in the module is is
it enough to have it in the main code above?

Thanks,
Pierre
 
J

Jake Marx

Hi Pierre,
private sub test()
on error goto errorhandling

my stuff

exit sub
errorhandling:
My error
end sub

Here's my question:
if in 'my stuff' i have, next to some calculation code, a module i
want tot execute, do i have to put the 'on errror' codelines also in
the module is is it enough to have it in the main code above?

It depends on what you want the code to do. By default, if you call a
function or subroutine, and it has no error handling of its own, the error
will be "passed up" to the calling code. So the error handler for this sub
"test" will catch the error. If the other function or subroutine does have
error handling, it will catch the error, and you can decide what to do with
it there.

BTW, it's best to use a Resume statement after you trap an error, as the
next error your code encounters will be untrappable if you don't. Here's
what I typically do:

Sub Test()
On Error GoTo ErrHandler

'/ code here

ExitRoutine:
'/ clean up here (set object vars to Nothing, etc)
Exit Sub
ErrHandler:
'/ handle error here if needed
Resume ExitRoutine
End Sub

--
Regards,

Jake Marx
www.longhead.com


[please keep replies in the newsgroup - email address unmonitored]
 
P

Pierre via OfficeKB.com

Thanks Jake,
This was a big help !
Pierre

Jake said:
Hi Pierre,
private sub test()
on error goto errorhandling
[quoted text clipped - 10 lines]
want tot execute, do i have to put the 'on errror' codelines also in
the module is is it enough to have it in the main code above?

It depends on what you want the code to do. By default, if you call a
function or subroutine, and it has no error handling of its own, the error
will be "passed up" to the calling code. So the error handler for this sub
"test" will catch the error. If the other function or subroutine does have
error handling, it will catch the error, and you can decide what to do with
it there.

BTW, it's best to use a Resume statement after you trap an error, as the
next error your code encounters will be untrappable if you don't. Here's
what I typically do:

Sub Test()
On Error GoTo ErrHandler

'/ code here

ExitRoutine:
'/ clean up here (set object vars to Nothing, etc)
Exit Sub
ErrHandler:
'/ handle error here if needed
Resume ExitRoutine
End Sub
 

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