在Try-Catch中“捕获”什么样的数据结构或构造

时间:2018-08-22 12:21:06

标签: c#

在C#的上下文中,可以这样编写代码:

try {
      ...
} 
catch {
      ... 
}

在其他情况下,代码可以是:

try {
      ...
}
catch (Exception e) {
      ...
}

我的问题是:“捕获”是哪种数据结构或构造?从第二个示例的外观看,它似乎是一种方法(在C#编程语言的上下文中)。但是吗?如果是这样,那么为什么在第一个示例中不需要括号(因为括号对于C#中的方法不是可选的)?

3 个答案:

答案 0 :(得分:2)

try-catch是在C#编程语言或其他命令式编程语言中称为声明的示例。语句是语法元素,是语言构造的一部分。

看看documentation of try-catch来了解其定义。

答案 1 :(得分:2)

C#具有Statements(或语句关键字),仅是程序指令。 Catch是C#try-catch语句中的子句(分类在异常处理语句类别中)。另外,由于子句是按顺序检查的,因此您应该在不太具体的例外之前捕获更具体的例外。

Source

答案 2 :(得分:0)

尝试/捕获是statement

  

try ... catch语句用于捕获发生的异常   在执行块期间,使用try ... finally语句   指定始终执行的完成代码,无论是否   是否发生异常。

来源: https://docs.microsoft.com/en-us/dotnet/csharp/tour-of-csharp/statements

捕获是尝试/捕获clause的{​​{1}}

  

在同一个中可以使用多个特定的catch子句   try-catch语句。

来源:https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/try-catch