Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “什么样的数据结构或构造?”;捕获;试捕_C# - Fatal编程技术网

C# “什么样的数据结构或构造?”;捕获;试捕

C# “什么样的数据结构或构造?”;捕获;试捕,c#,C#,在C#的上下文中,可以有这样的代码: try { ... } catch { ... } 在其他情况下,代码可以是: try { ... } catch (Exception e) { ... } 我的问题是:什么样的数据结构或构造是“catch”?从第二个示例的外观来看,它似乎是一种方法(在C#编程语言的上下文中)。但是是吗?如果是这样,那么为什么在第一个示例中不需要括号(因为括号对于C#中的方法不是可选的)?try-catch是在C#编

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

try {
      ...
} 
catch {
      ... 
}
在其他情况下,代码可以是:

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

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

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

请查看以查看其定义。

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


Try/Catch是一个
语句

try…catch语句用于捕获发生的异常 在执行块期间,使用try…finally语句 若要指定始终执行的终结代码,请确定 是否发生异常

资料来源:

Catch是Try/Catch
语句的
子句

在同一个语句中可以使用多个特定catch子句 试试catch语句


来源:

Just
catch
将捕获所有异常。另一个规范将捕获任何类型的
异常
(包括其子类)。不,它不是一个函数-它是一个语言构造。我想说它是一个子句。规范调用
try
一个语句和
catch
一个子句。它是一个像linuxrocks说的包含异常数据结构的子句。@fredrik-带有异常(没有双关语的意思…)StackOverflowException-至少不是直接抛出的,如果是通过框架抛出的。