gpt4 book ai didi

javascript - 我如何捕获 CS7036 错误

转载 作者:太空宇宙 更新时间:2023-11-03 17:29:45 25 4
gpt4 key购买 nike

所以我是 C# 的新手,我一直在通过将我的代码从 python 转换为 C# 来学习。现在我偶然发现的问题是:如何捕获 CS7036 错误。它在 python 中称为“AttributeError”,如果您尝试实例化一个类,但没有所需数量的参数,就会发生这种情况。

public Vector Crossproduct(Vector other)
{
try
{
List<double> output = new List<double>()
{
Y* other.Z - other.Y * Z,0 - (X * other.Z- other.X * Z),X* other.Y - other.X * Y
};
Vector outputvector = new Vector(output);
return outputvector;
}
catch (Exception)
{

throw;
}
}

我用谷歌搜索了一下,发现几乎没有关于这个错误的内容。这是 Microsoft 的 C# 文档的链接。 Herehere.

我的问题不是如何修复错误,而是如何捕获它,所以我很清楚。

最佳答案

您误解了这里的一些基本内容。编译器错误不是运行时异常;它们是编译器告诉您代码根本不合法。没有在运行时捕获编译器错误的工具,因为非法代码永远不会首先运行;这是非法的!

现在,在 C# 中情况会在运行时生成涉及动态 的编译器错误。也就是说:C# 有一个子系统,允许它与动态语言(如 Python 或 JavaScript)进行互操作。使用该功能时,通常在编译时做出的决定会推迟到运行时,在那种情况下,您实际上可能会遇到必须在运行时捕获编译器错误的情况。

你不在那种情况下,很少有涉及构造函数的动态情况。如果您以后遇到那种情况,您要捕获的异常是 RuntimeBinderException

参见 How does having a dynamic variable affect performance?关于dynamic 是如何工作的一些想法,如果你对这个主题感兴趣的话。

关于javascript - 我如何捕获 CS7036 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51991917/

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