try
{
Test test1 = new Test() { SomeProperty = "test" };
// use test1 for something...
}
catch (Exception ex)
{
// handle the exception
}
或者,如果test1的作用域需要在try/catch之外,你可以先声明它:
Test test1 = null;
try
{
test1 = new Test() { SomeProperty = "test" };
}
catch (Exception ex)
{
// handle the exception
}
// if test1 is not null, use it for something...
1条答案
按热度按时间xjreopfe1#
这里的
{ }
是一个object initializer,而不是一个代码块:你不能只是在一个对象初始化器中放入任何你喜欢的语句。它只是用于初始化新创建的对象的属性的语法。例如:
它在语义上类似于(几乎在所有情况下都足够类似):
如果你想捕获一个在创建对象时发生的异常,请将其 * Package * 在try/catch中。例如:
或者,如果
test1
的作用域需要在try/catch之外,你可以先声明它:另一方面,如果您希望在setter中更具体地处理任何给定属性的异常,则可以在该setter中处理它们,或者可以避免对象初始化器语法并单独设置属性,根据逻辑需要将相关属性 Package 在try/catch中。