[ASP]error handling

Pagina: 1
Acties:

  • paragon
  • Registratie: April 2000
  • Laatst online: 04-09 18:58
Ik probeer bij het uitvoeren van een sql statement de error te vangen als er bijvoorbeeld een verkeerde kolomnaam gekozen wordt.

Ik heb nu ergens boven aan in de pagina "on error resume next" staan en na het uitvoeren van de sql(rs.Open strSQL, conn):
code:
1
2
3
4
5
If Err.Number <> 0 Then
     'Clear response buffer
     Response.Clear
    Response.Write(Err.Description)
End If

Nu krijg ik niet de standaard error, maar ook geen Err.Description. Waar moet ik de If statement nou zetten?

Verwijderd

Op woensdag 12 juni 2002 18:43 schreef paragon het volgende:
Nu krijg ik niet de standaard error, maar ook geen Err.Description. Waar moet ik de If statement nou zetten?
Maar wat krijg je wel :?. Want dit is ietswat onduidelijk...

ADO errors kan je volgens mij uit het connection object los peuteren, maar dat staat heel uitgebreid in de MSDN beschreven :).

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:41

gorgi_19

Kruimeltjes zijn weer op :9

Hij gaat nog wel gewoon door met het uitvoeren van de pagina (en komt dus misschien een oneindige loop tegen)

Je moet dus in je if-statement ook nog een 'einde van de pagina' toevoegen

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

voorbeeld:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  dim error
  Set conn = Server.CreateObject("ADODB.Connection")
  conn.open (ConnStr)
  on error resume next
  conn.Execute "insert into groep (naam) values _
     ('"&Replace(request.form("groep"),"'","''")&"')"
  error=Conn.errors(0).SQLState
  conn.close
  set conn=nothing

if error=23000 then
%>
<script language="javascript">
alert('deze groep bestaat al')
</script>
<%
  end if
%>

[edit]
layout

  • paragon
  • Registratie: April 2000
  • Laatst online: 04-09 18:58
Op woensdag 12 juni 2002 19:02 schreef gorgi_19 het volgende:
Hij gaat nog wel gewoon door met het uitvoeren van de pagina (en komt dus misschien een oneindige loop tegen)

Je moet dus in je if-statement ook nog een 'einde van de pagina' toevoegen
hoe doe je dat want hij raakt dus in een oneidige loop volgens mij.

Als ik dus niet on error resume next toevoeg krijg ik gewoon die standaard error zoals:

Microsoft JET Database Engine error '80040e37'

The Microsoft Jet database engine cannot find the input table or query 'artist'. Make sure it exists and that its name is spelled correctly.
code:
1
2
3
4
5
6
7
8
9
10
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open Server.MapPath(DSN)
on error resume next
set rs=Server.CreateObject("ADODB.recordset")
rs.Open strSQL, conn
conn.close
If Err.Number <> 0 Then
    Response.Write ("foutje")
End If

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 09:41

gorgi_19

Kruimeltjes zijn weer op :9

Response.End gebruiken

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • paragon
  • Registratie: April 2000
  • Laatst online: 04-09 18:58
Op woensdag 12 juni 2002 20:32 schreef gorgi_19 het volgende:
Response.End gebruiken
Ik heb het toegevoegd maar hij blijft in een loop hangen. ne ik krijg nogsteeds geen "foutje" te zien

  • zoepercavia
  • Registratie: September 2001
  • Laatst online: 26-12-2025
als je uit een oneindige loop wil (meestal while in het geval van records) kan je het beste zoiets doen...
code:
1
2
3
4
5
6
7
on error resume next

while testIets
    'normale code
    if err.number <> 0 then exit while

wend

exit for
exit sub
exit function
exit do
bestaan ook allemaal

Panacea.NL als je geinteresserd bent in IT en Geneeskunde!


  • paragon
  • Registratie: April 2000
  • Laatst online: 04-09 18:58
HEt is opgelost. ik kwam er achter dat er een commentaar teken voor "option explicit" stond en die heb ik even weg gehaald. Toen kreeg ik een vb error, die wel door de error handler gepakt werd. Ik heb toen die vb error verholpen (even een dim voor een variabele zetten) en het werkt.
Pagina: 1