Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
Subroutine vs GOTO "On Error"
Unfortunately in VBA On Error Goto is practically unavoidable to provide
decent error handling. .Net has Catch, which is a lot neater. From my perspective, anyone who writes poorly structured, ambiguous, spaghetti code is capable of doing that with or without Goto's. Goto's may make it easier, but it is not the cause of the problem. You know the old phrase, a poor workman blames his tools. The secret is to build well,-structured code, declare your variables, add meaningful comments, and then the odd properly used Goto will not be a problem. -- HTH RP (remove nothere from the email address if mailing direct) "Damian Carrillo" wrote in message ... 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 |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
HOW IS COLUMN "K" REFERENCED ON THE CURRENT ROW IN THE GOTO COMMAN | Excel Discussion (Misc queries) | |||
Question on "On Error GoTo skip" | Excel Discussion (Misc queries) | |||
Subroutine vs GOTO "On Error" | Excel Programming | |||
Subroutine vs GOTO "On Error" | Excel Programming |