Я использую JScript.NET для написания скриптов в написанном мною приложении C # WinForms. Это работает очень хорошо, но я просто попытался добавить в скрипт некоторую обработку исключений, и я не могу понять, как определить, какой тип исключения был сгенерирован из моего кода C #.
Вот несколько примеров кода JScript, который выдает два разных типа исключений CLR, а затем пытается их перехватить и разделить.
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;
}
}
Если я позвоню ErrorTest("foo")
, я вернусь "Error 5022: Value does not fall within the expected range."
, а если я позвоню ErrorTest("foobar")
, я вернусь "Error 5022: Operation is not valid due to the current state of the object."
Свойства имени и номера идентичны, единственное отличие - это сообщение. Я не хочу начинать писать логику обработки ошибок на основе сообщений об ошибках, поэтому есть ли способ получить исходное исключение вместо объекта JScript Error
?