我很困惑。这取决于具体情况吗?或者它有通用标准?任何人都可以提供一个摘要,告诉我何时使用if-else
,以及何时使用try...catch
?
答案 0 :(得分:2)
我想这是一个太宽泛的问题,但从我的观点来看try...catch
阻止只能在exceptional
个案例中使用,那些你并不真正期待的情况,但是,应用程序可以从这些情况中恢复。 If-else
是一个完全正常的阻止,允许您的程序转到两个不同的方向。
答案 1 :(得分:2)
if else语句用于评估布尔表达式,例如,
if(isWeekday){
return "wakeup@6:00AM";
}
else{
return "wakeup@10:00AM";
你会对你知道的数据使用if else语句,并且可以轻松计算布尔表达式。有时候,你并不确定你正在处理什么,并且可能会在尝试处理它时遇到错误。在这种情况下,你会使用try catch。
try{
Scanner data = new Scanner(new File("data.dat"));
} catch (IOException e){
e.printStackTrace();
}
在这种情况下,您无法确定要从中获取数据的文件是否存在,因此您无法对其执行任何合理的计算。
答案 2 :(得分:0)
使用try-catch
代替if-else
你真的不应该互换使用它们。
try/catch
子句用于出现在您控件之外但在正常程序流中不正确的事情。例如,尝试写入文件并且文件系统已满?通常应使用try/catch
来处理这种情况。
if-else
子句应该用于正常流程和普通错误检查。那么,例如,用户无法填充所需的输入字段?请使用if
,而不是try/catch
。
答案 3 :(得分:0)
在java
中,当代码有可能抛出需要传递的异常时,使用try-catch
语句。 try-catch
中的逻辑运行,直到发现异常,其中逻辑移动到可以处理异常的catch框。
try{
//Exception prone logic
}catch(Exception e){
//handle the exception here
}
if-else
语句是一个条件语句,它计算一个布尔表达式,该表达式将程序流引导到if-block代码块或else-block代码块
if(i == 0){
//i is equal to 0
}else{
//i is not equal to 0
}