函数设计之美--再谈函数需要返回错误码吗?
zhuweisky在文章函数设计之美--函数需要返回错误码(一)? 中总结: 不要让错误传播,在错误出现的发源地(萌芽期)就解决它!错误越是传播到最后,关于处理它的上下文就丢失得越多,对于错误的蔓延就越是爱莫能助!同意他的结论,我们知道在面向对象中单一职责是很重要的理念。函数在设计时也要秉承这个理念,保证函数的功能单一。但是异常的发生是在单一功能之外的发生的,我们没法避免这些异常的发生,但是主流参数错误这类的问题,个人认为不应该归类到异常中。
我们以函数归类的角度分析。类似GetMaxElement这样的工具函数,它不应该包括过多的异常处理,否则导致该函数复杂臃肿,隐性改变了该函数设计的初衷。调用方在调用工具函数时,要确保自身的参数的合法性,举个例子:夹东西的,你却给它汤,我想筷子的功能是不能正常发挥。
所以:我们应该明确工具函数的功能并正确使用,以避免错误的发生。如果发生异常就直接利用异常机制抛出来。