try catch与if else
if(#)
{
doSomething();
}
else
{
doAnotherThing();
}
这是一个简单的if else语句,当满足if中的#条件时,执行doSomething(),否则执行doAnotherThing()。
try {
逻辑代码块;
} catch(ExceptionType e) {
处理代码块;
}
这是一个try catch 语句,程序尝试执行try中的逻辑代码块,如果出现异常则实行处理代码块。
两者在逻辑上还是非常相似的,那么为什么java要采用try catch来处理
在网上搜集资料后,大概总结了一下
if … else…属于程序结构中的分支结果,try…catch属于顺序结构,虽然说在出现异常的时候编译器会跳到捕获异常的入口处,但这是和传统意义上if … else结构存在根本性的差别。
也就是说,if else是人工判断逻辑结果,而try catch包含了更多异常比如机械处理异常。
好比如果因为环境问题导致代码执行异常,如果if else没有考虑进去和加入确切的条件,程序就会崩溃,而try…catch会进入catch阶段
下为应用场景的判断
if中的条件无法获得时,比如出现无返回值的错误时,用try catch
所有异常都能预知时,用if else,否则用try catch