25. august 2010 - 07:54Der 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
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 %>
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.
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.