区别:
if可以进行简单的过滤,但是,由于机器或者说环境各异,可能会产生一些无法预知的异常,这是在开发阶段无法预知的,所以就要用try...catch来捕捉,而if是无法做到的。
从程序结构上来说:
if ... else...属于程序结构中的分支结果,try...catch属于顺序结构,虽然说在出现异常的时候编译器会跳到捕获异常的入口处,但这是和传统意义上if ... else结构存在根本性的差别。
当不可预知有什么异常的时候,用try,当过多的情况需要处理的时候,用if就会太繁琐,当你需要观察的代码没有返回值的时候,iff()当中没法作判断,必须用try.
如果所有的异常都能事先知道,那么就可以用if-else,但是有些时候很难判断,所以就用try-catch。