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.(重点)如果是自己可控的异常,应该显式抛出!原因是可读性强:当别人读取这段程序时,不会以为作者是没有考虑到这个问题的。

点赞