Java:何时应该使用if-else以及何时应该使用try ... catch来处理条件检查?

时间:2016-07-29 05:23:13

标签: java if-statement exception exception-handling

我很困惑。这取决于具体情况吗?或者它有通用标准?任何人都可以提供一个摘要,告诉我何时使用if-else,以及何时使用try...catch

4 个答案:

答案 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
}