Solved

Debug Error Handling

Posted on 2009-04-10
5
175 Views
Last Modified: 2012-05-06
I have a small querry . It works of but if you press cancel small problem in debuger.
I need a way to handle it.

By the way it only does this in the debuger.
If i just run the exe it will do nothing. Is this someing to be worried about ?
var

  value : string;

 

begin

    value := InputBox('Invoice Number Lookup ', 'Please type your Number', '');

 if datamodule2.ADOQuery1.Locate('InvoiceNumber', Value, []) then

  ShowMessage('Record located')

  else

  ShowMessage('Record NOT LOCATED');

end;

Open in new window

large.jpg
0
Comment
Question by:Grant Fullen
  • 2
  • 2
5 Comments
 
LVL 22

Accepted Solution

by:
8080_Diver earned 250 total points
ID: 24120683
It works of but if you press cancel small problem in debuger.
I need a way to handle it.

Please explain what you mean by "if you press cancel".  If you are referring to the Cancel button on the Dialog box, then you need to look at the Default String parameter in your InputBox statement . . . it is a null string.  That could weel be the cause of your problems.  If you do not want toeven attempt to locate a record, then you need to code for that.
Also, you should get in the habit of using TRY . . . EXCEPT . . . END; to wrap code that has a potential for throwing exceptions.  That lets you, among other things, add a little more debugging or human consumable text to the error message (see below).  
Substituting the code snippet for your code should, among other things, make the exception message a little more meaningful if in no other way than that it will show you what was entered for the search parameter.  


var

  value : string;

 

begin

  value := InputBox('Invoice Number Lookup ', 

                    'Please type your Number', '');

  if  (Value = '')

  then begin

    ShowMessage('You clicked Cancel.');

  end

  else

    try

      if datamodule2.ADOQuery1.Locate('InvoiceNumber', Value, []) 

      then begin

        ShowMessage('Record located');

      end

      else begin

        ShowMessage('Record NOT LOCATED');

      end; {if}

    except E:Exception

      on exception

        begin

          Raise Exception.Create('ERROR: An error occured while ' +   

                                 'trying to locate the desired ' +   

                                 'record [' + Value + ']:' + #13#10 +

                                 E.Message);

        end;

    end; {try}

  end; {if}

end;

Open in new window

0
 

Author Comment

by:Grant Fullen
ID: 24120790
Thanks for your reply.
except E:Exception  <========= Undeclaired Identifier......
0
 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 24121078
Add SysUtils to the uses clause
0
 

Author Comment

by:Grant Fullen
ID: 24122006
wow thats   weard I allready have SysUtils in my uses clause...........
0
 
LVL 37

Expert Comment

by:Geert Gruwez
ID: 24122708
uh no, it's a syntax error

 except
      on E:Exception do
        begin
          Raise Exception.Create('ERROR: An error occured while ' +  
                                 'trying to locate the desired ' +  
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

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

Suggested Solutions

Objective: - This article will help user in how to convert their numeric value become words. How to use 1. You can copy this code in your Unit as function 2. than you can perform your function by type this code The Code   (CODE) The Im…
Have you ever had your Delphi form/application just hanging while waiting for data to load? This is the article to read if you want to learn some things about adding threads for data loading in the background. First, I'll setup a general applica…
Hi friends,  in this video  I'll show you how new windows 10 user can learn the using of windows 10. Thank you.
Both in life and business – not all partnerships are created equal. As the demand for cloud services increases, so do the number of self-proclaimed cloud partners. Asking the right questions up front in the partnership, will enable both parties …

910 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

Need Help in Real-Time?

Connect with top rated Experts

22 Experts available now in Live!

Get 1:1 Help Now