作为编程新手,我刚刚发现你可以专门捕获某些类型的错误并将代码绑定到那种类型的错误。
我一直在研究这个主题,我不太明白语法,例如。
catch (InvalidCastException e)
{
}
我理解InvalidCastException
是正在处理的错误类型,但我不确定e
是什么。
有人可以解释一下吗?
答案 0 :(得分:19)
假设没有e
。您如何获得异常消息?
您可以使用名称e
(或任何其他名称)来获取异常对象的句柄,以便您可以从中提取信息。
不提供任何名称是合法的语法:
catch (InvalidCastException) //legal C#
这样可行,但除了类型之外,您无法了解其他任何错误。
答案 1 :(得分:16)
e
是保存特定于异常的数据的对象。如果您查看不同类型的异常,您会发现它们都具有不同类型的数据。许多人没有,但很多人这样做,当他们这样做时,他们可以帮助您确定究竟发生了什么,而不是仅仅获得一般性错误。
例如,NotFiniteNumberException
定义了一个名为OffendingNumber
的附加属性,该属性在普通Exception
对象中不存在...这会提供您可能需要计算的其他数据究竟发生了什么。
答案 2 :(得分:6)
"e"
就是您决定调用异常的任何内容。就像你会做的那样
string name = "...";
或
int total = 8;
此示例中的string
和int
是数据类型,(在您的情况下,数据类型为InvalidCastException
)而“name
”和“total
“是变量名称,在您的情况下只是”e
“。
答案 3 :(得分:5)
'e'
只是变量名称,如果您觉得更容易阅读,可以将其称为'ex'
或'exception'
。但是'e'
只是一个惯例,就像for i = 0...
构造中的'i'
答案 4 :(得分:4)
e
是放置InvalidCastException
实例的变量。然后,您可以查看该对象的属性,以帮助您准确了解导致try
块中的代码抛出错误的原因。
答案 5 :(得分:4)
“InvalidCastException”是类型,e是此类型的对象。 使用该对象,您可以在其上调用成员函数。例如
catch (InvalidCastException e) {
...
e.printErrorMessage();
...
}
答案 6 :(得分:3)
e
是对异常对象的引用,该异常对象存储捕获的异常的详细信息。详细信息可能包括例外Message
,InnerException
对象等
答案 7 :(得分:2)
e
是变量名。它可以是您想要命名的任何内容,例如exception
。
答案 8 :(得分:2)
e
是保存异常的变量,所以现在您可以执行e.message
之类的操作
答案 9 :(得分:2)
e是InvalidCastException类型的实例。在catch块中,您可以例如说Debug.Write(e.ToString())。