纠结中。。
有人告诉我,bug不应该作为异常处理。
看下面代码。。UI层调用逻辑层一个命令函数:SendCommand().
这个函数中,用到一个引用。正常来讲,这个引用是不可能为空的。但潜在的危险时,由于代码的bug导致这个引用为空,而且没有测试出来。
那么怎么处理这个引用呢?1. assert
方便测试,但是万一没有测到,就留下了一个导致程序挂掉的隐患。2. 判断是否为空,如果为空,就不执行命令。
不会挂掉程序,但是在用户不知情的情况下擅自不执行命令了。3. 判断是否为空,如果为空,抛出“内部错误”异常。
不执行命令,并且可以通知用户(UI层catch到异常,弹出对话框。)但是显然吧bug当作异常处理了。应该怎么整好呢。其实我觉得第三种最好,还灵活。如果想得到第二种结果,UI层catch到不处理就行了。但是如果ui不catch,程序仍然会挂掉。请高人指点一二。异常怎么用呢。。