J'utilise JScript.NET pour écrire des scripts dans une application C# WinForms que j'ai écrite. Cela fonctionne très bien, mais j'ai juste essayé de mettre en place une gestion des exceptions dans un script, et je n'arrive pas à comprendre comment dire quel type d'exception a été lancé depuis mon code C#.Can JScript.NET distingue différents types d'exception .NET
Voici un exemple de code JScript qui lance deux types différents d'exception CLR, puis essaie de les attraper et de les différencier.
function ErrorTest(name)
{
try
{
if (name.length < 5)
{
throw new ArgumentException();
}else
{
throw new InvalidOperationException();
}
}catch (e)
{
return e.name + " " + (e.number & 0xFFFF) + ": " + e.message;
}
}
Si je l'appelle ErrorTest("foo")
, puis je reviens "Error 5022: Value does not fall within the expected range."
, et si je l'appelle ErrorTest("foobar")
, puis je reviens "Error 5022: Operation is not valid due to the current state of the object."
Les propriétés nom et le numéro sont identiques, la seule différence est le message. Je ne veux pas commencer à écrire une logique de gestion des erreurs basée sur les messages d'erreur, donc existe-t-il un moyen d'obtenir l'exception originale au lieu de l'objet JScript Error
?
Doux! Où étais-tu il y a quatre mois? Je suppose que j'aurais dû continuer à chercher dans la documentation de JScript. –
Je pensais la même chose! Où comme il y a quatre mois!? En effet, j'ai lu à peu près tous les docs de JScript et ai été le meilleur pour cela. –