J'ai une page qui appelle un script ASP/VB classique à l'aide de la fonction jQuery Ajax, qui permet de spécifier les gestionnaires pour les résultats de réussite et d'erreur. Ces gestionnaires reçoivent la réponse du script ASP, qui exécute simplement du code SQL pour insérer un enregistrement dans une base de données. Si une erreur SQL indique une violation de clé en double, je souhaite remplacer le message d'erreur généré par un message convivial, en utilisant le code ci-dessous. Comme je l'ai découvert, cela ne fonctionne pas car le code n'atteint jamais la ligne "if conn.Errors.Count". Si le SQL génère une erreur, le code renvoie immédiatement le message d'erreur, qui inclut le numéro de ligne de la ligne "conn.Execute". Existe-t-il un moyen d'obtenir ce que je veux?Gestion des erreurs VBScript lors de l'appel d'un script à l'aide d'Ajax
set conn=CreateObject("ADODB.Connection")
conn.Open ConnString
conn.Execute "INSERT ... " (long statement omitted for readability)
if conn.Errors.Count> 0 then
if instr(conn.Errors(0).Description, "duplicate key") > 0 then
Response.Write "Unable to add herb - code already exists"
else
Response.Write conn.Errors(0).Description
end if
else ' success
Response.Write "Herb added"
end if
conn.Close
set conn=nothing
Voir: [Gestion des erreurs dans ASP] (http://www.4guysfromrolla.com/webtech/060399-1.shtml) – SearchAndResQ
double possible de [en utilisant « en cas d'erreur reprendre ensuite "dans ASP classique, et comment gérer les erreurs] (https://stackoverflow.com/questions/17445890/using-on-error-resume-next-in-classic-asp-and-how-to-handle- erreurs) –
Salut - si ASP classique fonctionne sur la base que, sauf indication contraire, toute erreur est inattendue et il se ferme quand il en voit un. Dans votre cas, le SQL provoque une erreur - d'où le quitter. Vous avez peut-être déjà entendu parler d'une procédure d'essai pour parler du traitement des erreurs. ASP classique n'a pas try-catch, à la place, il a sur l'erreur reprendre prochaine etc. Utilisez les liens que les autres ont fourni. –