Java 扫描仪中的异常处理
在java中使用Scanner类时是否需要处理异常。你怎么解释这件事Java 扫描仪中的异常处理,java,Java,在java中使用Scanner类时是否需要处理异常。你怎么解释这件事 我对此没有正确的想法。任何人都可以帮助我吗?Java支持异常处理,这样我们就可以避免应用程序中不必要的行为。在任何事务中,如果我们预见到任何不需要的行为,我们应该处理异常。Scanner类可以根据所使用的操作类型引发任何异常,例如Runtime、illegalArgument、numberformat等。因此,作为一种良好的实践,我们应该始终单独捕获所有特定异常,并获得更好的执行。任何引发异常的方法的使用都应该处理、重新引发或
我对此没有正确的想法。任何人都可以帮助我吗?Java支持异常处理,这样我们就可以避免应用程序中不必要的行为。在任何事务中,如果我们预见到任何不需要的行为,我们应该处理异常。Scanner类可以根据所使用的操作类型引发任何异常,例如Runtime、illegalArgument、numberformat等。因此,作为一种良好的实践,我们应该始终单独捕获所有特定异常,并获得更好的执行。任何引发异常的方法的使用都应该处理、重新引发或重新声明(如果是选中的异常)让他们为下一个级别选择如何处理它 在
Scanner
中,如果采用方法,它会根据扫描仪的状态引发各种异常。你必须关心它。但是护理的方式取决于您的程序逻辑 也就是说,
Scanner
中的大多数异常都是RuntimeException
,这意味着您不需要在代码中显式捕获它们。假设您在main
中,如果发生异常,它将由JVM在顶层处理。在这种情况下,您的程序将以错误代码和堆栈跟踪退出
Scanner
中唯一需要检查并且必须以某种方式处理的例外情况是从文件构造Scanner
时IOException
和FileNotFoundException
不能忽略
例如,当您阅读
double
时(滥用)使用异常,您可能会尝试执行以下操作:
public static void testScanDoubleWithException() {
Scanner sin = new Scanner(System.in);
System.out.println("Enter a double: ");
while (true) {
try {
double d = sin.nextDouble(); // Throw if not a double
System.out.println("Read double value: "+d);
break;
}
catch (InputMismatchException e) {
System.out.println("Invalid double, shoot again:");
sin.nextLine(); // consume bad input
}
}
sin.close();
}
但是Scanner
类提供了更简单/明确的方式:
public static void testScanDouble() {
Scanner sin = new Scanner(System.in);
System.out.println("Enter a double: ");
while (!sin.hasNextDouble()) {
System.out.println("Invalid double, shoot again:");
sin.nextLine();
}
double d = sin.nextDouble();
System.out.println("Read double value: "+d);
sin.close();
}
对。例如,如果使用扫描仪对象读取文件,则应处理FileNotFoundException,否则将出现错误。但是,如果您只是使用System.in作为输入,则不会显示任何错误。但是,同时,您应该检查输入是否符合您希望从用户处获得的信息,因此始终建议使用异常处理。到目前为止您尝试了什么?请在遇到问题的地方发布代码片段。@Sameera,你想做什么?请分享一些例子