在Delphi中,如果在对象的构造过程中出现异常:任何分配的内存都会被释放并抛出异常。例如,保证以下内容要么返回有效Camera
对象,要么抛出异常:
Camera c = new Camera();
您永远不必检查结果变量是否为空:
Camera c = new Camera();
if (c == null)
throw new Exception("Error constructing Camera") //waste of time
在 CLR 中也是如此吗?
是否还有其他语法结构可以保证返回值有效或抛出异常?
- 创建结构(例如矩形)?
- 获取枚举成员?
- Object.ToString() 的结果?
- 数学运算?
在执行数学的情况下:
Int32 aspect = 1650.0 / 1080.0;
if (aspect == null)
throw new Exception("Division of two numbers returned null")