当前位置: 首页 > 知识库问答 >
问题:

I/O错误异常处理:IOException的catch块不可达。此异常从不从try语句主体引发

柯升
2023-03-14

**程序需要做的事情:**

当它运行时接受两个命令行参数,否则抛出一个错误。该规则包含以下要求:“如果没有命令参数,则执行I/O错误处理。”

问题是,每次尝试使用I/O异常捕获时,都会收到以下错误:

无法访问IOException得catch块.此异常从不从try语句正文引发

我从Eclipse获得的快速修复建议:
1。删除Catch条款2。用close替换Catch子句

下面是我的代码:

import java.awt.Robot;
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;

public class DecipherText {
    public static void main(String[] args) throws IOException { 
        String firstArg;
        String secondArg;

        if (args.length > 0) {
            try {
                firstArg = args[0];
                secondArg = args[1];
            } catch (IOException e) {
                System.out.println("Usage Error: Not enough Arguments");
                System.out.println(e);
                return;
            }
        }

        String inputFile = args[0];
        String outputFile = args[1];
    }

    public static boolean receiver() { 
        return false;
    }

    public static boolean output() { // Outputs The Final File
        return false;
    }
}
    null

非常感谢任何帮助。谢谢,苏利

共有1个答案

尹赞
2023-03-14

我认为问题是Java永远不会在代码中抛出IOException

firstArg = args[0];
secondArg = args[1];

因此,不需要捕获IOException。如果用户没有提供2个参数,您可能捕获的异常可能是ArrayIndexOutOfBoundsException。

当您通过套接字与外部源通信或读取文件时,有时会抛出IOException。但确定args数组中的内容不会引发IOException。

 类似资料:
  • 我正在尝试获得PSQLException异常,但是它告诉我这个块无法到达,有人知道为什么吗?我的意思是,我不能运行或任何东西,Eclipse标记为一个错误。但是,例如,如果我放置异常e,而不是PSQLException e,它不会给出错误。

  • 我写了一段代码,每当我用特定的图像名称点击url时返回图像,如果找不到图像,就返回错误图像。 但我还是会遇到这个错误,当我试图击中错误的图像 代码出了什么问题?

  • 考虑来自Java文档的以下代码。 根据Java文档, 在示例readFirstLineFromFile中,如果从try块和try with resources语句抛出异常,则方法readFirstLineFromFile抛出从try块抛出的异常;禁止从try with resources块引发的异常。 另一方面,也提到了 由于BufferedReader实例是在try with resource语

  • 我不是太笨,不会意识到“try catch”中的代码不能抛出异常。但是我被困在这里,因为我完全从书中复制了代码,所以它在出版时肯定是正确的。这让我想知道代码是否不能再编译了,因为它已经过时了?我意识到这个问题的性质可能会冒犯在座的一些人。如果是的话,请不要在严厉的斥责中过于严厉。 我得到了一个错误: ./streamcopier.java:13:错误:异常IOException从不在相应try语句

  • 这是我的堆栈代码的数组实现: 这是OverFlowException类: 当我运行这个编译器时给出错误“exception OverFlowException is never thrown in body of response try statement” 然后我意识到我没有包含检查数组是否为isFull()的部分。 我的问题是我在ArrayStack2类中有isFull()方法,以及如何从O

  • 本文向大家介绍Java异常处理之try...catch...语句的使用进阶,包括了Java异常处理之try...catch...语句的使用进阶的使用技巧和注意事项,需要的朋友参考一下 try就像一个网,把try{}里面的代码所抛出的异常都网住,然后把异常交给catch{}里面的代码去处理。最后执行finally之中的代码。无论try中代码有没有异常,也无论catch是否将异常捕获到,finally