编写程序,举例说明免检异常,提交代码,内容包括格式转换异常、算术异常、数组下标越界异常、找不到类型异常等,并使用异常处理代码捕获这几类异常,给出用户正确的提示
时间: 2024-03-04 16:27:20 浏览: 66
以下是一个简单的程序,演示了免检异常的几种类型并使用异常处理代码捕获:
```java
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class ExceptionDemo {
public static void main(String[] args) {
String str = "abc";
int num1 = 10, num2 = 0;
int[] arr = {1, 2, 3};
try {
// 格式转换异常
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.parse(str);
// 算术异常
int result = num1 / num2;
// 数组下标越界异常
System.out.println(arr[3]);
// 找不到类型异常
Class.forName("com.mysql.jdbc.Driver");
} catch (ParseException e) {
System.out.println("日期格式不正确!");
} catch (ArithmeticException e) {
System.out.println("除数不能为0!");
} catch (ArrayIndexOutOfBoundsException e) {
System.out.println("数组下标越界!");
} catch (ClassNotFoundException e) {
System.out.println("找不到数据库驱动!");
}
}
}
```
在上面的代码中,我们首先定义了一个字符串、两个整数和一个整型数组。然后,我们使用 try-catch 块来捕获四种免检异常:
- 格式转换异常:如果字符串不能被解析为日期,则抛出 ParseException 异常,我们在 catch 块中捕获并打印错误信息。
- 算术异常:如果除数为0,则抛出 ArithmeticException 异常,我们在 catch 块中捕获并打印错误信息。
- 数组下标越界异常:如果尝试访问一个不存在的数组元素,则抛出 ArrayIndexOutOfBoundsException 异常,我们在 catch 块中捕获并打印错误信息。
- 找不到类型异常:如果尝试加载一个不存在的类,则抛出 ClassNotFoundException 异常,我们在 catch 块中捕获并打印错误信息。
这些异常都是免检异常,因为它们是由 Java 运行时自动检测并抛出的,而不需要我们显式地声明抛出它们。我们可以使用 try-catch 块来捕获这些异常,并提供有用的错误信息给用户。这是一个良好的编程实践,可以使我们的程序更加健壮和可靠。
阅读全文