有人说了try ...catch...不就是抛出异常以文本形式显示出来么?if...else...也可以阿.else里面写showmessage不就可以么???
首先try提捕获异常的,即异常并不是我们能预先知道的,所以不能用if什么条件来判断的。异常是需要在程序的运行中进行捕获的。
举个例子来看看吧:
int a=200,b=0;
int c;
try
{
c=a/b;
}
catch(...)
{
ShowMessage("Can not devided by zero!");
}
可是如果上面的例子用if…else…,就不能够显示else后面的结果了。
的确, if可以进行简单的过滤, 但是, 由于机器或者说环境各异, 可能会产生一些无法预知的异常, 这是在开发阶段无法预知的, 所以就要用try...catch来捕捉, 而if是无法做到的.
从程序结构上来说:
if…else…属于程序结构中的分支结构;
try…catch…应该属于程序结构中的顺序结构,虽然说在出现异常的时候编译器会跳到捕获异常的入口处,但这和传统意义上的if…else…结构存在根本性的差别.
当不可预知有什么异常的时候,用try
当过多情况需要处理,用if就会太繁琐
当你需要观察的代码没有返回值的时候,if()当中没法作判断,必须用try
大致就是这3种情况
还有就是:意义不一样,异常是在运行时不定出现的。