Being specific with Try / Catch
本文关键字:Catch Try with specific Being | 更新日期: 2023-09-27 17:50:11
作为编程新手,我刚刚发现可以专门捕获某些类型的错误,并仅将代码绑定到该类型的错误。
我一直在研究这个主题,但我不太懂语法。
catch (InvalidCastException e)
{
}
我理解InvalidCastException
是正在处理的错误类型,但我不确定e
是什么。
假设不存在e
。如何获得异常消息?
名称e
(或任何其他名称)为您提供了异常对象的句柄,以便您可以从中提取信息。
不给出任何名称是合法的语法:
catch (InvalidCastException) //legal C#
这个方法可以工作,但是除了错误类型之外,您无法知道其他任何关于错误的信息。
e
是保存特定于异常的数据的对象。如果您查看不同类型的异常,您会发现它们都具有不同类型的数据。很多没有,但也有很多有,当它们有了,它们可以帮助你准确地识别发生了什么,而不仅仅是得到一个通用的错误。
例如,NotFiniteNumberException
定义了一个名为OffendingNumber
的附加属性,该属性不存在于正常的Exception
对象中…然后,这将提供您可能需要的额外数据,以确定究竟发生了什么。
"e"
只是您决定调用的异常。就像你会做的那样
string name = "...";
或
int total = 8;
在这个例子中,string
和int
是数据类型,(在你的情况下,数据类型是InvalidCastException
),而"name
"answers"total
"是变量名,在你的情况下,只是"e
"。
'e'
只是变量名,如果您觉得这样更容易阅读,您可以将其称为'ex'
或'exception'
。但'e'
只是一种约定,就像for i = 0...
结构中的'i'一样
e
是放置InvalidCastException
实例的变量。然后,您可以查看该对象的属性,以帮助您准确地理解是什么导致了try
块中的代码抛出错误。
"InvalidCastException"为类型,e为该类型的对象。使用对象,您可以在其上调用成员函数。例如
catch (InvalidCastException e) {
...
e.printErrorMessage();
...
}
e
是对异常对象的引用,该对象存储捕获的异常的详细信息。详细信息可能包括异常Message
、InnerException
对象等。
e
为变量名。它可以是您喜欢的任何名称,例如exception
。
e
是保存异常的变量所以现在你可以做像e.message
这样的事情
e是InvalidCastException类型的实例。例如,在catch块中,您可以写入Debug.Write(e.ToString())。