Avatar billede sth Novice
25. august 2010 - 07:54 Der er 5 kommentarer og
1 løsning

Hjælp til On Error

Jeg har et script der køre i planlagte opgaver  på en server om natten, mit script laver nogle beregninger ud fra data i en database på nettet.

Jeg har dog det problem at det sker at jeg mister forbindelsen til databasen i løbet af en kørsel, og dette medføre en fejl og betyder samtidig at mit script  ikke køre næste nat

Jeg vil gerne have noget kode der kan skrive ned i en data base hvis der har været fejl

Så det er nok noget med On Error

Kan man lave det så hvis der har været en fejl så gør "noget" og afslut script
Avatar billede Christopher18 Nybegynder
25. august 2010 - 08:07 #1
HEJ.

STATEMENT:  On Error


On Error Resume Next
On Error GoTo 0

The On Error Resume Next statement gives you a limited amount of error handling control by preventing program interruptions from runtime errors. When an error occurs, by using this statement, the line of code containing the error is simply skipped over and the program continues running.

Note that the error is not corrected, just ignored, and an error message is not displayed. Of course, your program may still crash or give erroneous output if the error involves a value required to successfully execute later portions of your code.

Code:
<% On Error Resume Next %>

The On Error GoTo 0 statement is used to disable error handling.

Code:
<% On Error GoTo 0 %>

If you wish to know whether an error has occurred and of what type, you can insert the following code.

Code:
<% If Err.Number <> 0 Then %>
<% =Err.Number%>
<% Err.Clear %>
<% End If %>
Avatar billede sth Novice
25. august 2010 - 08:35 #2
hmm ja havde selv fundet noget ligende, men kan ikke få det ind i min kode

min kode er 500 linier

men kunne ligne dette:

SQL1 ="SELECT  * from stock "
Conn.Execute (SQL1)
Set rs = conn.Execute(SQL1)
DO WHILE NOT rs.EOF

    og en masse kode med bereginger
   
    hvis jeg nu løber ind i en fejl her vil jeg gerne ud af min loop og så gøre noget
   
rs.MoveNext
LOOP
Avatar billede morten_leth Nybegynder
30. august 2010 - 18:42 #3
Tjah den er nu ikke særlig svær... men tror lige jeg vil komme med lidt info inden jeg giver dig svaret.
Nu ved jeg ikke om det er i asp du laver din kode eller om det er et vbscript... men du kan sådan set også i bund og grund lave de samme ting


On error resume next
Dette aktivere din error handling, efter du har sat denne her ind vil der IKKE komme nogen fejl overhovedet, dette kan potentielt godt være farligt.. :D
Derfor plejer jeg egentlig bare at aktivere det der hvor jeg skal bruge det.
on error goto 0
dette deaktivere din error handling.

Du kan bruge err.number til at finde ud af hvad der er i din error.
for at tømme din cache bruger du err.clear.

Alt i alt er det godt nok lidt en gentagelse af hvad den gode christopher siger.. =)

så for at flette det ind i din kode skal du nok gøre følgende...

on error resume next
SQL1 ="SELECT  * from stock "
Conn.Execute (SQL1)
Set rs = conn.Execute(SQL1)
DO WHILE NOT rs.EOF
  if err.number <> 0 then
strError = "True"
    err.clear
    exit do
  end if
    og en masse kode med bereginger
   
    hvis jeg nu løber ind i en fejl her vil jeg gerne ud af min loop og så gøre noget
   
rs.MoveNext
LOOP
if strError = "True then
msgbox "hey hey"
end if

Du kan os bare nøjes med at tjekke på den fejl du ved der kommer, altså det nummer.
Og på denne her måde kan du gøre et eller andet hvis du føler det nødvendigt...

Jeg kan desværre ikke lige tjekke koden efter men hvis der er problemer med den så må du jo sige til... =) så finder vi ud af det.

/Leth
Avatar billede morten_leth Nybegynder
30. august 2010 - 18:42 #4
if strError = "True" then
msgbox "hey hey"
end if

Der manglede da lige en "
Avatar billede sth Novice
02. september 2010 - 18:03 #5
tak for det komemr du med et svar?
Avatar billede morten_leth Nybegynder
02. september 2010 - 23:13 #6
jepperdi...

/Leth
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester