Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Report Post  
Posted to microsoft.public.excel.programming
external usenet poster
 
Posts: 1,163
Default Subroutine vs GOTO "On Error"

I was also schooled in the principle that GOTOs are poor programming, but an
On Error Goto is a special case (exception to the rule?) - the point is that
the code cannot continue without the error handler. A Sub would return
control to the program from where it was called - in other words where the
error occurred - which would be very dangerous. An On Error Goto gives you a
way to gracefully exit your sub without bringing your app to a crashing halt
- but it is your responsibility then to make sure the error handler
"behaves." The same with On Error Resume Next which allows you to "ignore"
an error - personally I think that is even more problematic than an On Error
Goto and I avoid it as much as possible (are you REALLY sure the only error
that can occur on that line is the one you are thinking of? I mean, REALLY
REALLY sure???).

So programmers today have a special indulgence that allows them out of GOTO
hell if, and only if, they use On Error Goto in a responsible way. But if
your On Error Resume Nexts are part of what plagues the buggy buggy computer
world there is a special place in hell just for you...

--
- K Dales


"Damian Carrillo" wrote:

This may have been covered previously, but I've not been able to find it on
the boards. In school I was taught that GOTO statements were evil, bad, and
generally not nice. I later learned firsthand about the nightmare of fixing
someone else's GOTO riddled code. Even the VBA help files warn repeatedly
that GOTO use is something to be avoided.

Despite this, the only way I seem to be able to trap errors is by using the
"On Error" statement/method:

'code here
ON ERROR RESUME NEXT
'or
ON ERROR GOTO StupidBuggyCrap
'more code here followed by blocks of code called by GOTO statements
EXIT SUB
Stupidbuggycrap:
'code to trap, display and handle errors
END SUB

I have tried to create separate error subroutines that can be called from
any module in my code, but they always fail to compile, which suggests that
calls to other subroutines are not allowed when using "ON ERROR".

My question: Why is this? And is there a way around this limitation? Am I
overlooking something obvious that allows calls to code in another module to
be used? Or are bad programming habits that make code impenetrable to
outsiders a prerequisite for any error trapping efforts? Will these forced
bad coding habits force me to GOTO hell!?

Damian Carrillo


----------------
This post is a suggestion for Microsoft, and Microsoft responds to the
suggestions with the most votes. To vote for this suggestion, click the "I
Agree" button in the message pane. If you do not see the button, follow this
link to open the suggestion in the Microsoft Web-based Newsreader and then
click "I Agree" in the message pane.

http://www.microsoft.com/office/comm...el.programming

Reply
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules

Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
set up macro to goto cell with "today" in Stuart WJG Excel Worksheet Functions 7 March 13th 08 03:19 PM
HOW IS COLUMN "K" REFERENCED ON THE CURRENT ROW IN THE GOTO COMMAN mbnspect Excel Discussion (Misc queries) 5 January 10th 08 11:50 PM
Question on "On Error GoTo skip" dan Excel Discussion (Misc queries) 2 July 1st 07 10:48 PM
Getting "compile error" "method or data member not found" on reinstall Bp Excel Programming 1 April 23rd 04 04:42 PM


All times are GMT +1. The time now is 07:28 AM.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004-2024 ExcelBanter.
The comments are property of their posters.
 

About Us

"It's about Microsoft Excel"