attempt to handle InvalidCastException in a manner similar to Second Life

integration
SignpostMarv 2012-08-16 15:32:20 +01:00 committed by Justin Clark-Casey (justincc)
parent 3ad827174e
commit 74f5253a36
2 changed files with 17 additions and 2 deletions

View File

@ -7674,6 +7674,10 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
}
}
}
catch (InvalidCastException e)
{
ShoutError(e.Message);
}
finally
{
if (positionChanged)

View File

@ -560,12 +560,23 @@ namespace OpenSim.Region.ScriptEngine.Shared
else if (m_data[itemIndex] is LSL_Types.LSLString)
return new LSLInteger(m_data[itemIndex].ToString());
else
throw new InvalidCastException();
throw new InvalidCastException(string.Format(
"{0} expected but {1} given",
typeof(LSL_Types.LSLInteger).Name,
m_data[itemIndex] != null ?
m_data[itemIndex].GetType().Name : "null"));
}
public LSL_Types.Vector3 GetVector3Item(int itemIndex)
{
if(m_data[itemIndex] is LSL_Types.Vector3)
return (LSL_Types.Vector3)m_data[itemIndex];
else
throw new InvalidCastException(string.Format(
"{0} expected but {1} given",
typeof(LSL_Types.Vector3).Name,
m_data[itemIndex] != null ?
m_data[itemIndex].GetType().Name : "null"));
}
public LSL_Types.Quaternion GetQuaternionItem(int itemIndex)