Java异常处理与输入验证

版权申诉
0 下载量 34 浏览量 更新于2024-08-24 收藏 28KB DOC 举报
"Java异常处理相关的编程作业,包含两个题目,要求对可能出现的异常进行捕获和处理,确保程序能够正常运行。" 在Java编程中,异常处理是保证程序健壮性的重要手段。异常(Exception)是程序运行时发生的错误,如果不进行处理,会导致程序中断。Java提供了一套完整的异常处理机制,包括try-catch-finally语句块,用于捕获和处理异常。 题目一要求修改程序,捕获`StringIndexOutOfBoundsException`和`NumberFormatException`。`StringIndexOutOfBoundsException`通常发生在尝试访问字符串中不存在的索引时,而`NumberFormatException`则是在将字符串转换为特定数字类型(如Integer)时,字符串无法解析为有效数字时抛出的异常。以下是修改后的代码示例: ```java package November; import java.util.Scanner; public class StringIndexOutOf { public static void main(String[] args) { System.out.println("请输入一个字符串:"); try { Scanner reader = new Scanner(System.in); String str = reader.nextLine(); if (str.length() >= 4) { System.out.println("第四个字符为" + str.charAt(3)); } else { System.out.println("您输入的字符串长度不足4个字符"); } int aa = Integer.parseInt(str); System.out.println("平方为" + aa * aa); } catch (StringIndexOutOfBoundsException e) { System.out.println("您输入的数值下标越界"); } catch (NumberFormatException nfe) { System.out.println("您输入的不是数字"); } } } ``` 题目二要求从命令行接收5个整数并存储到数组中,需要处理两种异常:`NumberFormatException`和数组越界异常。当输入的不是整数时,捕获`NumberFormatException`;当输入的数据不足5个时,捕获数组越界异常。以下是修改后的代码示例: ```java package November; import java.util.Scanner; public class Test2 { public static void main(String[] args) { if (args.length < 5) { System.out.println("请输入至少5个整数"); return; } int[] numbers = new int[5]; try { numbers[0] = Integer.parseInt(args[0]); numbers[1] = Integer.parseInt(args[1]); numbers[2] = Integer.parseInt(args[2]); numbers[3] = Integer.parseInt(args[3]); numbers[4] = Integer.parseInt(args[4]); for (int num : numbers) { System.out.println("整数:" + num); } } catch (NumberFormatException n) { System.out.println("请输入整数"); } } } ``` 以上代码对异常进行了捕获和处理,确保了即使在遇到错误数据或不足的数据量时,程序也能给出相应的提示,而不是直接崩溃。这样的处理方式提高了程序的用户体验,并且有助于开发者调试和解决问题。在实际编程中,良好的异常处理习惯可以极大地提高代码的稳定性和可靠性。