1 javascript c#
所以我对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;
}
}
Run Code Online (Sandbox Code Playgroud)
我用Google搜索了这一点,发现此错误几乎没有任何内容.这是Microsoft的C#文档的链接.这里和这里.
我的问题不是如何修复错误,而是如何捕获它,只是让我很清楚.
Eri*_*ert 11
你在这里误解了一些基本的东西.编译器错误不是运行时异常; 他们是编译器告诉你,代码是不合法的,在所有.在运行时没有用于捕获编译器错误的工具,因为非法代码永远不会在第一时间运行; 这是非法的!
现在,在C#中存在一些情况,其中在运行时涉及动态生成编译器错误.那就是:C#有一个子系统,允许它与动态语言(如Python或JavaScript)互操作.使用该功能时,通常在编译时进行的决策将推迟到运行时,在这种情况下,您实际上可能处于必须在运行时捕获编译器错误的情况.
你不是那种情况,并且在涉及构造函数的动态情况下很少见.如果您将来处于这种情况,您想要捕获的例外是RuntimeBinderException.
请参阅如何使动态变量影响性能?关于如何dynamic运作的一些想法,如果这个主题感兴趣你.