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,如需转载请自行联系原作者

相关文章
|
3天前
|
C++
C++异常处理try和throw以及catch的使用
C++异常处理try和throw以及catch的使用
|
8月前
|
程序员 编译器 C语言
C++中的 throw详解
在《C++异常处理》一节中,我们讲到了 C++ 异常处理的流程,具体为: 抛出(Throw)--> 检测(Try) --> 捕获(Catch) 异常必须显式地抛出,才能被检测和捕获到;如果没有显式的抛出,即使有异常也检测不到。在 C++ 中,我们使用 throw 关键字来显式地抛出异常,它的用法为: throw exceptionData; exceptionData 是“异常数据”的意思,它可以包含任意的信息,完全有程序员决定。exceptionData 可以是 int、float、bool 等基本类型,也可以是指针、数组、字符串、结构体、类等聚合类型,请看下面的例子: c
67 0
|
7月前
16 # 实现 catch 方法
16 # 实现 catch 方法
31 0
|
11月前
|
存储 前端开发 Java
Exception 和 Error
Exception 和 Error
66 0
|
12月前
|
Java API Spring
RuntimeException和Exception的区别
RuntimeException和Exception的区别
104 0
|
安全 Java 数据库连接
Java中的异常处理详解(try、catch、finally、throw、throws)
Java中的异常处理详解(try、catch、finally、throw、throws)
266 1
|
Java 编译器 API
RuntimeException和Exception比较
RuntimeException和Exception比较
473 0
|
C#
c# throw和throw ex
原文:c# throw和throw ex c# throw和throw ex 我们在日常开发当中,经常会用到exception异常,并且我们会在exception中的catch块中throw exception,例如: static void M3() { try { ...
748 0
|
Linux C# Windows
【C#】简单解决PathTooLong的Exception
原文:【C#】简单解决PathTooLong的Exception 前提 windows系统路径的最大长度限制是260个字符(听说.Net 4.6.2,取消了这个限制),而Linux或者Unix系统的好像是4K个字符。
975 0
|
Java
throws 与 throw
/* * 有些时候,我们是可以对异常进行处理的,但是又有些时候,我们根本就没有权限去处理某个异常。 * 或者说,我处理不了,我就不处理了。 * 为了解决出错问题,Java针对这种情况,就提供了另一种处理方案:抛出。
1055 0