繁体   English   中英

我需要使用 try-catch,但它说这是一个无法访问的 catch 块。 我如何使它可达?

[英]I need to use a try-catch, but it says it is an unreachable catch block. How do I make it reachable?

我是编码新手,对 Java 也很陌生,所以请多多包涵,对不起。

我的教授说我们需要使用以下代码作为我们作业的一部分。 我已经查看了我所有的课堂笔记,但在 try-catch 中找不到任何内容,我不确定应该在插入代码部分中放入什么或错误消息的含义

我很抱歉,我只是很困惑。 我不断收到“FileNotFoundException 无法访问的 catch 块。这个异常永远不会从 try 语句体中抛出”,我不知道如何修复它

try 
{
    File file = new File( args [ 0 ] );
    Scanner scanner = new Scanner( file );

    //insert code

    scanner.close();
}
catch  (FileNotFoundException e)
{
 e.printStackTrace();
}

编辑:在我尝试对文本文件进行硬编码以进行测试之前,修复它后我没有再次收到该错误。

try 
{
    File file = new File( args [ 0 ] );
    Scanner scanner = new Scanner("cat.txt");

    //insert code

    scanner.close();
}
catch  (FileNotFoundException e)
{
 e.printStackTrace();
}

我再次收到“无法访问 FileNotFoundException 的 catch 块。这个异常永远不会从 try 语句体中抛出”

我应该在 try 语句中放什么? 我很失落

在我尝试对文本文件进行硬编码以进行测试之前,修复它后我没有再次收到该错误。

 try { File file = new File( args [ 0 ] ); Scanner scanner = new Scanner("cat.txt"); //insert code scanner.close(); } catch (FileNotFoundException e) { e.printStackTrace(); }

我再次收到“无法访问 FileNotFoundException 的捕获块。

new Scanner(String)new Scanner(File) 如果您查看文档,第一个(使用String从 string读取,而不是从文件中读取。 由于不涉及文件,因此没有FileNotFoundException

如果您想对文件名进行硬编码以进行测试,请在new File(...)行中执行此操作,而不是在new Scanner(...)行中:

try 
{
    File file = new File("cat.txt");      // <==== Here
    Scanner scanner = new Scanner(file);

    //insert code

    scanner.close();
}
catch (FileNotFoundException e)
{
    e.printStackTrace();
}

这将编译,因为new Scanner(File)抛出FileNotFoundException

欢迎来到 SO! 异常是捕获错误并决定如何处理它们的好方法。 某些代码段需要程序进行一次飞跃并尝试执行当时可能无法执行的任务。

问题中指定的错误是扫描仪未在指定文件路径中找到文件的结果。 ArrayIndexOutOfBounds 准确地指示异常状态。 正在访问的索引超出数组的边界(大小)。

Java 文档是一个很好的资源,这应该有助于阐明 catch 语句的目的。 https://docs.oracle.com/javase/tutorial/essential/exceptions/catch.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM