091108 T Throw Exception

简介:

对于写程序讲究速度的人来说的一个小问题,示例如下:
(原方法)
void Method(Object arg){
    string name = arg.ToString();
}

(新方法)
void Method(Object arg){
    if(arg == null) throw new ArgumentNullException();
    string name = arg.ToString();
}

这里应该执行对参数arg的显示判断并抛出异常。
原方法虽然也会在arg为null的时候抛出Exception,但是有两点不行:
1.抛出的Exception不是指定的ArgumentNullException,而是系统默认的NullReferenceException。
2.(重点)如果是自己可控的异常,应该显式抛出!原因是可读性强:当别人读取这段程序时,不会以为作者是没有考虑到这个问题的。



本文转自BloodyAngel博客园博客,原文链接:http://www.cnblogs.com/zgynhqf/archive/2009/11/21/1607742.html,如需转载请自行联系原作者

相关文章
|
6月前
|
程序员 编译器 C语言
C++中的 throw详解
在 C++ 中,异常处理遵循"抛出-检测-捕获"的流程。异常必须通过 `throw` 显式抛出,例如 `throw 100;` 可以抛出整数类型的异常。动态数组可以通过自定义的 `Array` 类实现,当访问越界或空数组时,会抛出 `OutOfRange` 异常。`throw` 关键字也可用于函数异常规范,指定函数可能抛出的异常类型。然而,C++11 后不再推荐使用异常规范,因为它们可能导致编译器行为不一致。
|
6月前
|
C++
C++异常处理try和throw以及catch的使用
C++异常处理try和throw以及catch的使用
|
存储 前端开发 Java
Exception 和 Error
Exception 和 Error
85 0
|
Java API Spring
RuntimeException和Exception的区别
RuntimeException和Exception的区别
212 0
|
Java 编译器 API
RuntimeException和Exception比较
RuntimeException和Exception比较
533 0
|
C#
c# throw和throw ex
原文:c# throw和throw ex c# throw和throw ex 我们在日常开发当中,经常会用到exception异常,并且我们会在exception中的catch块中throw exception,例如: static void M3() { try { ...
770 0
|
Linux C# Windows
【C#】简单解决PathTooLong的Exception
原文:【C#】简单解决PathTooLong的Exception 前提 windows系统路径的最大长度限制是260个字符(听说.Net 4.6.2,取消了这个限制),而Linux或者Unix系统的好像是4K个字符。
1018 0
|
Java
throws 与 throw
/* * 有些时候,我们是可以对异常进行处理的,但是又有些时候,我们根本就没有权限去处理某个异常。 * 或者说,我处理不了,我就不处理了。 * 为了解决出错问题,Java针对这种情况,就提供了另一种处理方案:抛出。
1090 0
|
C#
C# try catch finally
抛出异常开销非常大(相对而言),所以不要过多的在程序中使用它们 既然finally一定是要执行的,即使try块中有return
874 0