不要依赖代码中的异常
2004-10-25 00:13
330 查看
因为异常大大地降低性能,所以您不应该将它们用作控制正常程序流程的方式。如果有可能检测到代码中可能导致异常的状态,请执行这种操作。不要在处理该状态之前捕获异常本身。常见的方案包括:检查 null,分配给将分析为数字值的 String 一个值,或在应用数学运算前检查特定值。下面的示例演示可能导致异常的代码以及测试是否存在某种状态的代码。两者产生相同的结果。
[C#]
// Consider changing this...
try {
result = 100 / num;
}
catch (Exception e) {
result = 0;
}
// ...to this.
if (num != 0)
result = 100 / num;
else
result = 0;
[Visual Basic]
' Consider changing this...
Try
result = 100 / num
Catch (e As Exception)
result = 0
End Try
// ...to this.
If Not (num = 0)
result = 100 / num
Else
result = 0
End If
[C#]
// Consider changing this...
try {
result = 100 / num;
}
catch (Exception e) {
result = 0;
}
// ...to this.
if (num != 0)
result = 100 / num;
else
result = 0;
[Visual Basic]
' Consider changing this...
Try
result = 100 / num
Catch (e As Exception)
result = 0
End Try
// ...to this.
If Not (num = 0)
result = 100 / num
Else
result = 0
End If
相关文章推荐
- 不要依赖代码中的异常
- 在AE二次开发中出“正试图在 OS 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。”异常解决方案
- [改善Java代码]不要在构造函数中抛出异常
- CAD调试时抛出“正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码”异常的解决方法
- #118 – Don’t Add Code to Dependency Property Getter/Setter(不要在依赖属性的Getter/Setter中加入处理代码)
- [改善Java代码]不要在构造函数中抛出异常
- C++编程规范之31:不要编写依赖于函数参数求值顺序的代码
- 编写高质量代码改善C#程序的157个建议——建议59:不要在不恰当的场合下引发异常
- android 使用AspectJ,代码注入到依赖项目异常
- 不要写过于聪明的代码(兼C++中的new和异常)
- 编写高质量代码改善C#程序的157个建议[用抛异常替代返回错误、不要在不恰当的场合下引发异常、重新引发异常时使用inner Exception]
- 补货异常代码
- 通过WSDL生成soap客户端代码时报的异常
- PHP依赖倒置(Dependency Injection)代码实例
- 第六十五条:不要忽略异常
- WinForm的.Designer.cs代码内抛反射异常
- 利用自定义异常来重构代码(▄︻┻┳═一不了解自定义异常者勿看)
- 使用Maven为代码构建依赖包
- 从网页上考的代码考到eclipse里面,会出现每行开头的空格下面有红色异常提示,为什么?
- Asp.net Mvc 身份验证、异常处理、权限验证(拦截器)实现代码