gpt4 book ai didi

c# - Environment.StackTrace 如何抛出 ArgumentOutOfRangeException?

转载 作者:太空狗 更新时间:2023-10-29 23:13:40 25 4
gpt4 key购买 nike

根据 MSDN , Environment.StackTrace 可以抛出 ArgumentOutOfRangeException但我不明白这怎么可能。

Environment.cs StackTrace ( source )

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

new EnvironmentPermission(PermissionState.Unrestricted).Demand();
return GetStackTrace(null, true);
}
}

调用 GetStackTrace(Exception, bool),其中 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 );
}

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

我们从第一次调用中知道,如果通过 Environment.StackTrace 调用到达此方法,则保证调用 StackTrace(bool)

但是 StackTrace(bool) 不会根据 MSDN 抛出任何异常.另一个可能的构造函数调用 StackTrace(Exception, bool) ( MSDN ) 确实会引发异常,但它是 ArgumentNullException 而不是 ArgumentOutOfRangeException。我没有看到代码中进行的任何其他方法调用会抛出 ArgumentOutOfRangeException

那我错过了什么? Environment.StackTrace 真的有可能抛出异常吗?如果是,如何抛出异常?

最佳答案

获取属性值实际上不应该抛出异常。我们已从 Environment.StackTrace property 的文档中删除异常信息.

关于c# - Environment.StackTrace 如何抛出 ArgumentOutOfRangeException?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33699481/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com