小编Ada*_*dam的帖子

Environment.StackTrace如何抛出ArgumentOutOfRangeException?

根据MSDN,Environment.StackTrace可以扔,ArgumentOutOfRangeException但我不明白这是怎么可能的.

Environment.cs StackTrace(来源)

public static String StackTrace {
    [System.Security.SecuritySafeCritical]
    get {
        Contract.Ensures(Contract.Result<String>() != null);

        new EnvironmentPermission(PermissionState.Unrestricted).Demand();
        return GetStackTrace(null, true);
    }
}
Run Code Online (Sandbox Code Playgroud)

调用GetStackTrace(Exception, bool)where Exception为null.

Environment.cs GetStackTrace(Exception, bool)(source)(删除了注释,它们无关紧要)

internal static String GetStackTrace(Exception e, bool needFileInfo)
{
    StackTrace st;
    if (e == null)
        st = new StackTrace(needFileInfo);
    else
        st = new StackTrace(e, needFileInfo);

    return st.ToString( System.Diagnostics.StackTrace.TraceFormat.Normal );
}
Run Code Online (Sandbox Code Playgroud)

上面的方法有可能调用两个构造函数StackTrace,StackTrace(bool)StackTrace(Exception, bool).

我们从第一次调用中知道,如果通过 …

.net c#

5
推荐指数
1
解决办法
493
查看次数

标签 统计

.net ×1

c# ×1