软件构造学习笔记6--两种健壮性处理方法的利弊
程序员文章站
2024-02-09 18:14:04
...
在lab3中的代码中,我沿用了一贯的编程习惯,对于可能的错误处理采用了使用一个boolean类型的flag变量来判断,但是实际使用起来相当麻烦,对于每个出错的地方除了要修改flag值以外,还需要判断此时应让其停止当前的语句块执行后跳转到哪里。这样,要么会出现大量的break语句,使得程序的可读性变差,要么会涉及到goto语句的使用,使得程序逻辑更加混乱,更不利于程序可读性,且使用这种flag变量进行错误判断的方式经常会出错,定位错误和调试工作变得非常困难,当发现本应提示错误的输入却能正常运行后很难发现是哪里的健壮性处理不到位。
而在lab4中,强制要求使用异常机制。再对原有代码进行了改造后,使用异常机制的好处很快就体现了出来。首先,逻辑清晰,正常与非正常处理的代码分离,可读性很好,自己看起来也很方便;其次,没有使用flag时所需要的很复杂的判断逻辑,一旦发现问题直接抛出异常,然后在这段代码中接下来就可以不用管这种情况了,所以问题留到异常处理中解决,程序也很容易一次写对,减少了定位错误和调试的麻烦。我认为这种便利性的来源主要是异常处理机制中的一旦抛出异常就直接中止执行当前的代码块,由java虚拟机运行机制调控比自己去控制要简单方便地多,并且这种fail fast的思想,使得正常处理部分的代码可以继续按正常思路写下去,不需要再管已经抛出过异常的特殊情况,程序逻辑简单一些。再经过使用异常对原先lab3的代码修改后,程序的语句行数也明显缩短了。应当尽早抛弃之前写C语言程序的编程思维习惯,充分利用java的特性、编程思路,既可以给编程带来便利也可以带来更好的代码质量。
上一篇: Java 抛异常的两种方法