类似这种设计问题都比较难描述,我想举个例子来引入这个问题。
比如说你在设计一个组建Com的时候
Com里包含Com.Foo和Com.Bar两个类,
而Foo里面有一个方法,接受某种特定格式字符串的参数,如果发现参数不符合格式,就抛出异常。
现在我有两种想法抛出异常:
- 一是抛出/Com/Foo/Exception,表示是Foo这个类有个地方出现异常;
- 另一种是抛出/Com/ArgumentException,表示是用户传入的参数不符合条件出现的异常;
当然这两种方式可能都不是特别好,不知道大家有什么想法能分享不。理由是必须的。