让我们考虑一下这段代码:
try
{
return new ClassA.GetStuff();
}
catch (Exception e)
{
throw new MyException
("message", e)
{SomeMyExceptionProperty = "something"};
}
抛出MyException时,对象初始化是如何完成的?这样地:
MyException myException = new MyException("message", e);
myException.SomeMyExceptionProperty = "something";
throw myException;
或者像这样(所以某些MyExceptionProperty
没有初始化):
MyException myException = new MyException("message", e);
throw myException;
myException.SomeMyExceptionProperty = "something"; //unreachable code
我认为使用了第一种行为,比如return
语句,但是关于这一点的官方文档在哪里?
与以往一样,官方文档是C#规范。
重要的部分是,这只是一个抛出语句。它有两个部分(在这种情况下):
抛出
在本例中,表达式包含一个对象初始值设定项。在抛出任何内容之前对整个表达式求值。
根据C#5规范第8.9.5节:
带有表达式的throw
语句抛出通过计算表达式生成的值。
计算表达式
new MyException
("message", e)
{SomeMyExceptionProperty = "something"}
... 包括将值“something”
分配给SomeMyExceptionProperty
。
我在使用Mockito进行单元测试初始化对象时遇到了一些困难 这是我的测试代码 要测试的代码 RecTangleService、CircleService和SquareService用注释我尝试了很多选项,最终得出结论。我没有得到我错在哪里。我试着在网上搜索了很多地方,但找不到任何帮助。
我正在使用selenium WebDriverWait对象动态控制代码中对象检测的超时。但此对象在WebDriverWait对象中指定的时间跨度用完之前超时。例如,我用10秒的超时时间跨度初始化了对象,但对象在大约2秒内超时。 这是我的密码 我在调试模式下运行它,我可以清楚地看到drv。FindElement(By.XPath(".//*[@类='TopTitle']")) 在2-3秒内 异常和堆
问题内容: 我在用Java工作。 我通常会这样设置一些对象: 问题是:在此示例中是否等于,按原样我可以假定对未初始化的对象进行空检查将是准确的? 问题答案: 正确,未显式初始化的引用类型的静态成员和实例成员都由Java 设置为。相同的规则适用于数组成员。 根据Java语言规范的第4.12.5节: 变量的初始值 程序中的每个变量在使用值之前都必须具有一个值: 每个类变量,实例变量或数组组件在创建时均
我预计Spring会通过将属性“property.key”设置为“property_value”来初始化StorageConfiguration对象。 但是,我得到以下异常 org.springframework.beans.factory.beanCreationException:创建类路径资源[applicationContext.xml]中定义的名为“storage”的bean时出错:在设
前面一节的 Fruit 类有两个实变量,分别表述水果的类型和状态.直到为这个类写了一个定制的inspect方法,我们方才了解它不会对一个缺乏属性的水果做出合理的解释.幸运的是,Ruby提供了一种允许实变量总是被初始化的方法. initalize方法 当Ruby创建一个新对象时,它总是会寻找一个名为 initialize 的方法并执行它.因此,我们可以简单通过一个initialize方法向实变量中加