Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
?
Solved

foxpro error handling

Posted on 2013-11-12
6
Medium Priority
?
618 Views
Last Modified: 2013-11-20
I'm currently using the Microsoft.XMLHTTP object to access websites within my program (scan through a table with URLs).
The problem is that with my current error handler, which is a simple try/catch statement, ends when an error occurs. Is there a way with error handling to continue the code, or go to the next row of a scanned table when an error occurs, rather than ending the program?
0
Comment
Question by:esak2000
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 2
6 Comments
 
LVL 43

Accepted Solution

by:
pcelba earned 2000 total points
ID: 39643855
Well...  TRY CATCH continues the code execution after the ENDTRY command so if you enclose a smaller part of code into TRY-CATCH then you may achieve what you need.

Another option is to use Error event in your class. If you define Error event then it is fired when an error occurs and then the control returns to the next line of your code.

And finally ON ERROR also offers the option to continue. RETURN command in your error procedure continues after the line which caused the error.
0
 

Author Closing Comment

by:esak2000
ID: 39643856
Thank you for the super quick response. Exactly what I needed.
0
 

Author Comment

by:esak2000
ID: 39643858
Just one follow up question, can I add a "loop" statement in the "catch"?
0
PowerShell Core for Advanced Linux Administrators

Understand advanced principals around Powershell Core with a focus on the Linux Administrator.  This course covers how to administer numerous environments across multiple platforms including Linux, Azure, AWS, and Google Cloud from a single shell instance.

 
LVL 43

Expert Comment

by:pcelba
ID: 39643908
No, this is not allowed (it will generate error 2059) but you may set some variable and issue the LOOP based on this variable:
FOR i = 1 TO 5
TRY
llCatch = .F.
aa = bb
CATCH
? i
llCatch = .T.
ENDTRY
IF m.llCatch
  LOOP
ENDIF
? "No LOOP"
NEXT

Open in new window

"No LOOP" should not appear.
0
 

Author Comment

by:esak2000
ID: 39644464
Perfect, thank you!
0
 
LVL 30

Expert Comment

by:Olaf Doschke
ID: 39661732
Well, to pull it together (though this already is solved):

If you do something like
Try
   Scan
     oBrowser.navigate2(url)
   Endscan
Catch
  * ...
Endtry

Open in new window

Then the first error makes VFP leave the code in the try block and not return there. Try Catch is not meant for overall error handling, but for catching local errors, so the solution simply is to put it inside the loop.

 
Scan
   Try
       oBrowser.navigate2(url)   
   Catch
     * log url as temporary or permanently not working
   Endtry
Endscan

Open in new window


There is no need to put a loop or the LOOP command for continuation of a loop into the try..catch, neither in the try, nor in the catch block. There also is no need for Pavels construct to set a variable llCatch, then. If you put try catch inside the loop you come out of it before the endscan and therefor loop and try with the next record again, this is what you intended, isn't it? Then simply do so :)

Edit: There is no wrong or right here, about where to put the try or the loop. It depends on your intention. If you want to continue trying further records, put the try inside the loop to continue with further records. If you want to stop processing data, when the first error happens, then put the loop inside the try..catch. Still you are free to do what you want :)

Bye, Olaf.
0

Featured Post

Learn by Doing. Anytime. Anywhere.

Do you like to learn by doing?
Our labs and exercises give you the chance to do just that: Learn by performing actions on real environments.

Hands-on, scenario-based labs give you experience on real environments provided by us so you don't have to worry about breaking anything.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Microsoft Visual FoxPro (short VFP) is a programming language with it’s own IDE and database, ranking somewhat between Access and VB.NET + SQL Server (Express). Product Description: http://msdn.microsoft.com/en-us/vfoxpro/default.aspx (http://msd…
Instead of error trapping or hard-coding for non-updateable fields when using QODBC, let VBA automatically disable them when forms open. This way, users can view but not change the data. Part 1 explained how to use schema tables to do this. Part 2 h…
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…
In this video, Percona Solution Engineer Dimitri Vanoverbeke discusses why you want to use at least three nodes in a database cluster. To discuss how Percona Consulting can help with your design and architecture needs for your database and infras…

721 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question