Exemple #1
0
    public static string GetErrorDescription(DyVariant err)
    {
        if (!Enum.TryParse <DyError>(err.Constructor, true, out var res))
        {
            if (err.Fields.Count > 0)
            {
                var dat = err.Fields[0].ToString();

                if (dat is not null)
                {
                    return(err.Constructor + $"({dat})");
                }
            }

            return(err.Constructor);
        }

        var idx = err.Fields.Count;
        var str = RuntimeErrors.ResourceManager.GetString(err.Constructor + "." + idx);

        if (str is not null && err.Fields.Count > 0)
        {
            var vals = err.Fields.ToArray()
                       .Select(v => v is DyTypeInfo t ? t.ReflectedTypeName : (v.ToString() ?? ""))
                       .ToArray();
            str = string.Format(str, vals);
        }
Exemple #2
0
    public static DyError GetErrorCode(DyVariant err)
    {
        if (!Enum.TryParse <DyError>(err.Constructor, true, out var res))
        {
            return(DyError.UnexpectedError);
        }

        return(res);
    }
Exemple #3
0
 internal DyCodeException(DyVariant err, CallStackTrace cs, Exception?innerException)
     : base(null !, innerException) => (Error, CallTrace) = (err, cs);