Java 在这种方法中,使用这个嵌套的try块是多余的吗?

Java 在这种方法中,使用这个嵌套的try块是多余的吗?,java,exception-handling,Java,Exception Handling,我正在看一个程序的一些代码,它接受一个文件输入并读取它,返回关于其中数据的细节,比如单词、行和字符的数量。在执行这些任务的所有方法中,使用嵌套的try块,如下所示,取自程序: private static int countSentences(String inputFile){ int numOfSentences=0; String delimiters = ".!?"; try{ File input = new File(inputFile);

我正在看一个程序的一些代码,它接受一个文件输入并读取它,返回关于其中数据的细节,比如单词、行和字符的数量。在执行这些任务的所有方法中,使用嵌套的try块,如下所示,取自程序:

private static int countSentences(String inputFile){
    int numOfSentences=0;
    String delimiters = ".!?";
    try{
        File input = new File(inputFile);
        try (Scanner reader = new Scanner(new FileInputStream(input))) {
            while (reader.hasNextLine()) {
                String line = reader.nextLine();
                for (int i = 0; i < line.length(); i++) {
                    if (delimiters.indexOf(line.charAt(i)) != -1) { 
                        numOfSentences++;
                    }
                }
            }
        }
    }
    catch (Exception ex) {
    }
    return numOfSentences;
}
private static int count语句(字符串输入文件){
int=0;
字符串分隔符=“.!?”;
试一试{
文件输入=新文件(inputFile);
try(Scanner reader=new Scanner(new FileInputStream(input))){
while(reader.hasNextLine()){
String line=reader.nextLine();
对于(int i=0;i
现在,我想到的是嵌套的try块。在同一个程序中,我去掉了嵌套的try块,留下了单个try块及其内容,这反过来又不会导致输出发生任何变化。
在这种情况下,这个嵌套的try块是多余的吗?或者是因为一些我还没有处理过的异常吗?

它利用了
自动关闭
顺便说一句,不报告捕获到的异常非常糟糕。对于op,您可以在外部try块之外定义“input”,然后完全删除外部try块。这与SO post非常类似。请仔细阅读。它使用的是
自动关闭
顺便说一句,不报告捕获的异常对于Op来说非常糟糕,您可以在外部try块之外定义“输入”,然后完全删除外部try块。这与SO post非常类似。读一读。