是否有必要在try-block之后放置catch语句?

时间:2011-07-15 05:35:55

标签: java exception-handling try-catch

我只是想知道是否有必要在try块之后放置catch,或者我们可以使用没有catch块的try块吗?

8 个答案:

答案 0 :(得分:4)

你需要在尝试之后放置catch或finally块。

try {

}
finally {

}

try {

}
catch (Exception e) {

}

答案 1 :(得分:1)

是的,你可以......但是你必须在finally之后放置一个try块。所以你可以这样做:

try
{
}
finally
{
}

try
{
}
catch(Exception e)
{
}

答案 2 :(得分:0)

是的,您可以在没有捕获的情况下编写try。在这种情况下,你需要finally块。尝试需要捕获或最终或两者都是至少一个捕获或最终是强制性的。

try{
  // throw exception
} finally{
  // do something.
}

但是你应该避免这种情况,因为在这种情况下你会丢失异常细节。因此,如果您不想在此处理它,那么只需抛出该异常。

答案 3 :(得分:0)

尝试没有catch块是一个语法错误,因为它没有任何意义(除非你也想使用finally块)。使用try的唯一原因是为了从该块中捕获异常(或者做一个finally)

答案 4 :(得分:0)

  

是否有必要在try block之后设置catch?

不,完全没有。在try块之后放置catch不是强制性的,除非并且直到try块后面跟着finally块。记住一件事,在尝试之后,捕获或者最后或两者都能起作用。

  

我们可以使用try而不用catch块吗?

是的,你可以。但这将是一个不好的做法。因为,你正在编写一个try块,你应该编写catch块(用于捕获异常)和一个很好的做法,以便通过finally块来跟踪它。

答案 5 :(得分:0)

是的,你可以使用finally而不是更实际我使用“throws Exception”函数,如果可以的话,因为使用try和catch块会使代码更难阅读。

答案 6 :(得分:0)

要记住的第一件事是你必须知道try-catch-finally块的目的是什么。

  1. try块用于测试其中写入的代码。如果代码导致异常,则会将异常抛出到catch块。
  2. catch块用于处理抛出的异常,例如,假设您编写的代码提示用户仅插入数字。但是用户输入了一个字母,因此代码抛出异常。然后catch块将捕获该异常。然后catch块提示用户重新输入数据。这就是您所谓的异常处理。但是如果你想让catch块空了就没事了。
  3. 您可以在try后面添加catch关键字,但是,您必须在finally阻止后写try。< / LI>
  4. 无论如何,finally块中的代码将始终执行。您通常在finally块中编写代码以关闭try块中打开的资源,如文件或数据库连接。
  5. 您可以使用try-with-resources代替finally块(在Java 8中可用)。
  6. 因此,您可以编写try,然后是catch,然后是finally,如下例所示:

    try{
        //code
    }
    catch(Exception ex){
        //code to handle the problem.
    }
    finally{
        //Closing resources etc.
    }
    

    或者你可以这样写:

    try{
        //code
    }
    catch(Exception ex){
        //code to handle the problem.
    }
    

    或者这个:

    try{
        //code
    }
    finally{
        //Closing resources etc.
    }
    

    但是,您通常希望使用catch块处理问题。

答案 7 :(得分:-1)

在Java 7中,try-with-resource语句不需要catch或finally子句

try(InputStream is = new FileInputStream(..))
{
    is.read();
}