Being specific with Try / Catch

本文关键字:Catch Try with specific Being | 更新日期: 2023-09-27 17:50:11

作为编程新手,我刚刚发现可以专门捕获某些类型的错误,并仅将代码绑定到该类型的错误。

我一直在研究这个主题,但我不太懂语法。

catch (InvalidCastException e) 
 {
 }

我理解InvalidCastException是正在处理的错误类型,但我不确定e是什么。

谁能解释一下这个?

Being specific with Try / Catch

假设不存在e。如何获得异常消息?

名称e(或任何其他名称)为您提供了异常对象的句柄,以便您可以从中提取信息。

不给出任何名称是合法的语法:

catch (InvalidCastException) //legal C#

这个方法可以工作,但是除了错误类型之外,您无法知道其他任何关于错误的信息。

e是保存特定于异常的数据的对象。如果您查看不同类型的异常,您会发现它们都具有不同类型的数据。很多没有,但也有很多有,当它们有了,它们可以帮助你准确地识别发生了什么,而不仅仅是得到一个通用的错误。

例如,NotFiniteNumberException定义了一个名为OffendingNumber的附加属性,该属性不存在于正常的Exception对象中…然后,这将提供您可能需要的额外数据,以确定究竟发生了什么。

"e"只是您决定调用的异常。就像你会做的那样

string name = "...";

int total = 8;

在这个例子中,stringint是数据类型,(在你的情况下,数据类型是InvalidCastException),而"name"answers"total"是变量名,在你的情况下,只是"e"。

'e'只是变量名,如果您觉得这样更容易阅读,您可以将其称为'ex''exception'。但'e'只是一种约定,就像for i = 0...结构中的'i'一样

e是放置InvalidCastException实例的变量。然后,您可以查看该对象的属性,以帮助您准确地理解是什么导致了try块中的代码抛出错误。

"InvalidCastException"为类型,e为该类型的对象。使用对象,您可以在其上调用成员函数。例如

catch (InvalidCastException e) {
    ...
    e.printErrorMessage();
    ... 
}

e是对异常对象的引用,该对象存储捕获的异常的详细信息。详细信息可能包括异常MessageInnerException对象等。

e为变量名。它可以是您喜欢的任何名称,例如exception

e是保存异常的变量所以现在你可以做像e.message这样的事情

e是InvalidCastException类型的实例。例如,在catch块中,您可以写入Debug.Write(e.ToString())。