if-else和try-catch

近来,在做机房收费系统,进度虽然很慢,但是问题不少,磕磕绊绊的。之前用VB做的完全没有考虑代码的合理性。不过这次从三层变七层(这里所说的七层是指增加外观模式和抽象工厂模式)。

开始的时候不知道if-else语句和try-catch语句有何区别,只看到表面的。起初我的理解是:如果....就....。感觉这两个语句实现的代码后的功能差不多呀。

if-else语句

首先要明确if-else语句是流程控制

if(表达式)

语句1;

else

语句2;

其语义是:如果表达式的值为真,则执行语句1,否则执行语句2

其过程表示如下图

if-else和try-catch_第1张图片


try-catch语句

首先先要知道try-catch语句是异常处理

Try
  Catch ex As Exception
    Throw New Exception(ex.Message, ex)

  End Try

首先try是捕获异常的,既然是异常就是我们无法预测到的,是未知的,而if-else语句我们则是都可以做出判断的。

如果if-else可以做try-catch的事情,那么就不要用try-catch。

后来才知道这两个语句其实根本就没有联系。只不过自己一厢情愿让两个不同的语句硬要产生联系。(风马牛不相及呀!!!)

当不可预知有什么异常的时候,用try
当过多情况需要处理,用if就会太繁琐
当你需要观察的代码没有返回值的时候,if()当中没法作判断,必须用try

try…catch…应该属于程序结构中的顺序结构,虽然说在出现异常的时候编译器会跳到捕获异常的入口处,但这和传统意义上的if…else…结构存在根本性的差别.

下面在补充一个

if-elseif语句

if-else和try-catch_第2张图片

读者只要看这两张图便可理解if-else和if-elseif的区别了。


你可能感兴趣的:(if-else和try-catch)