宋行健2018学年JAVA编程异常处理实验报告

需积分: 0 0 下载量 99 浏览量 更新于2024-08-04 收藏 917KB DOCX 举报
"宋行健,222018321062006,软件工程专业,王老师指导的JAVA编程课程实验报告,2018-2019学年第一学期第2周,项目主题:异常处理" 在Java编程中,异常处理是程序设计的重要组成部分,它允许程序员优雅地处理程序运行时可能出现的问题,而不是让程序突然崩溃。异常(Exception)是程序执行过程中发生的一种非正常情况,通常由错误、不匹配的数据类型或资源问题引起。Java提供了一套完整的异常处理机制,包括try-catch-finally语句块,以及自定义异常类的能力。 实验目标是掌握Java语言中的异常处理方法,定义自己的异常类,并编写异常处理程序来捕获和处理异常事件。具体来说,实验内容包括以下两个问题: 问题1: 此部分要求建立一个名为`inputInt()`的异常检查函数。这个函数的目标是从用户那里获取整数输入。在实际操作中,用户可能会输入非整数值,如字母或特殊字符,此时函数应能捕获这种异常情况并给出提示。解决方案如下: ```java public static int inputInt() { Scanner scanner = new Scanner(System.in); while (true) { try { System.out.print("请输入一个整数:"); return scanner.nextInt(); } catch (InputMismatchException e) { System.out.println("输入错误!请输入一个整数。"); scanner.next(); // 清除输入流中的错误数据 } } } ``` 在上述代码中,`try`块尝试读取用户输入的整数,如果输入不符合整数格式,`nextInt()`会抛出`InputMismatchException`。捕获到这个异常后,`catch`块会执行,提示用户输入错误,并通过`scanner.next()`清除当前输入流中的错误数据,然后循环重新获取输入。 问题2: 这部分实验可能涉及更复杂的情况,例如处理文件I/O异常、网络连接异常等。这可能需要使用多种类型的异常处理,例如`FileNotFoundException`(文件未找到)、`IOException`(输入/输出异常)等。通常,我们会在`try`块中包含可能导致异常的代码,然后在相应的`catch`块中处理不同类型的异常。 ```java try { File file = new File("path_to_file.txt"); BufferedReader reader = new BufferedReader(new FileReader(file)); // 读取文件内容... } catch (FileNotFoundException e) { System.out.println("文件未找到:" + e.getMessage()); } catch (IOException e) { System.out.println("读取文件时发生错误:" + e.getMessage()); } finally { // 关闭资源,无论是否出现异常都需要执行 if (reader != null) { try { reader.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` 在这个例子中,`try`块试图打开并读取一个文件。如果文件不存在,`FileReader`构造函数会抛出`FileNotFoundException`。在读取过程中可能出现其他I/O问题,这些会被`IOException`捕获。无论是否发生异常,`finally`块都会确保资源被正确关闭,防止内存泄漏。 通过这两个问题,学生可以深入理解Java的异常处理机制,学习如何利用异常处理来增强程序的健壮性和用户体验。同时,自定义异常类也是Java高级编程中常见的需求,学生可以通过创建继承自`Exception`或其子类的新类,实现特定场景下的异常处理。