PDA

Bekijk Volledige Versie : ASP error handling



Joris Kempen
16/12/02, 23:36
Hoi mensen,

Ik heb onderstaande functie gemaakt die het eenvoudig maakt een record
toe te voegen aan een database die verbonden is via ADO.

function addRecord(connection,table,fields,return_field)
dim rs,i,nuwrows
Set rs = Server.CreateObject("ADODB.Recordset")
rs.Open table, connection, , adLockOptimistic, adCmdTable
rs.AddNew

if isArray(fields) then
numrows=ubound(fields,1)
FOR i = 0 TO numrows
response.write i
rs.Fields(fields(i,0)) = fields(i,1)
next
end if

rs.Update
return_field = rs.Fields(return_field)
rs.Close
end function

1e collom van array = veldnaam van database
2e collim van array = waarde van veld van database

probleem: in deze code kunnen verschillende fouten optreden, bv:
- 'slechte' primary key gevormd door array waardes
- geen geldige veldnamen
- geen geldige waardes in velden

Deze fout meldingen wil ik intern afhandelen en aan de hand van een
return waarde terug geven aan het programma dat de functie gebruikt.

Een soort van Try ... Except... zoals ook in Delphi gebruikelijk is.

Op deze manier kan iedere functie zijn eigen fouten afhandelen en kan in
de webpagina aan de hand daarvan een bepaalde melding gegeven worden,
zonder dat er een lelijke message van de server komt.

Je kan werken met
On error Resume Next
en
OnError do

maar ik wil het niet globaal doen, maar per function.
Kun je een 'OnError do' in een functie geplaatst worden, of kan het met
een try .. except methode?

Ik heb gelezen dat JSP dit wel kan en ASP niet? Andere mogelijkheden?

Bedankt!
Gr. Joris

Daniel Tryba
17/12/02, 00:16
Joris Kempen <notme@hotmail.com> wrote:
[knip]
> Je kan werken met
> On error Resume Next
> en
> OnError do
>
> maar ik wil het niet globaal doen, maar per function.
> Kun je een 'OnError do' in een functie geplaatst worden, of kan het met
> een try .. except methode?

Dit heeft _niets_ met ASP te maken, je bent in de war: ASP is een
framework en de foutafhandeling waarop je hier doelt is een taak van de
scripttaal (in dit geval lijkt het op VBS).

> Ik heb gelezen dat JSP dit wel kan en ASP niet?

IMHO kan JSP (ook een framework met Java als onderliggende taal) ook
niet direct exceptions afhandelen (maar moet je dat rechtstreeks 'in
Java' met try/catch).

> Andere mogelijkheden?

Gebruik een andere scripttaal indien VBS niet voldoet (geen idee of dat
uberhaupt zo is (kan het me eigenlijk niet voorstellen)).

> function addRecord(connection,table,fields,return_field)
> dim rs,i,nuwrows
> Set rs = Server.CreateObject("ADODB.Recordset")
> rs.Open table, connection, , adLockOptimistic, adCmdTable
[...]
> end function

Bovenstaande zou je in JavaScript kunnen doen en per actie een eigen
try/catch opgeven.

function addRecord(connection,table,fields,return_field)
{
try
{
var rs=new Server.CreateObject("ADODB.Recordset");
}
catch(err)
{
Response.Write('failed to create: Server.CreateObject("ADODB.Recordset")');
}

//...
}


--

Daniel Tryba

Joris Kempen
18/12/02, 09:57
Daniel Tryba <news_nl.internet.www.server-side@canopus.nl> wrote in message news:<atlmt9$mcc$1@news.tue.nl>...

Ik zie dat jij JSP in combinatie met ASP gebruikt. Zover ik weet heeft
die wel ondersteuning voor een try .. catch statement.

Ik ben zelf gewend te werken met ASP en VBS, en hier zit dit niet in
zover ik weet.

Volgens mij kun je JSP en VBS door elkaar gebruiken in een ASP pagina,
maar ik weet niet of ik dit zo'n mooie oplossing vind. Verder ben ik
erg aan VBS gewend en heb momenteel geen tijd om over te stappen op
JSP.

Ondersteund elke IIS die ASP draait, ook JSP? Standaard staat die toch
op VBS volgens mij.

Grtz. Joris

ikÿ
18/12/02, 15:22
> Ik zie dat jij JSP in combinatie met ASP gebruikt. Zover ik weet heeft
> die wel ondersteuning voor een try .. catch statement.

Dat wat jij JSP noemt is geen JSP.
Wat je bedoeld is dat gedrocht dat Microsoft gemaakt heeft en dat wat syntax
wel een beetje op Java lijkt, maar er helemaal niets mee van doen heeft.

> Ondersteund elke IIS die ASP draait, ook JSP? Standaard staat die toch
> op VBS volgens mij.

Je kan IIS duidelijk maken welke script taal er 'aan komt', maar nogmaals
Microsoft's versie van Java heeft niets te maken met echte Java

Daniel Tryba
18/12/02, 16:22
Joris Kempen <joris.kempen@groupsupport.com> wrote:
> Ik zie dat jij JSP in combinatie met ASP gebruikt. Zover ik weet heeft
> die wel ondersteuning voor een try .. catch statement.

Geen JSP maar gewoon JavaScript
(http://msdn.microsoft.com/scripting/jscript/), JSP is heel wat anders
(http://java.sun.com/products/jsp/).

> Volgens mij kun je JSP en VBS door elkaar gebruiken in een ASP pagina,
> maar ik weet niet of ik dit zo'n mooie oplossing vind.

AFAIK kan dat juist niet in ASP. IIRC kan het in ASP.net wel.

> Ondersteund elke IIS die ASP draait, ook JSP? Standaard staat die toch
> op VBS volgens mij.

Javascript zit standaard bij IIS: <%@language=javascript%> om dit per
pagina in te stellen.

--

Daniel Tryba