查阅JDK文档,给出NullPointerException、ClassCastException、NumberFormatException、NegativeArraySizeException、NoSuchMethodException等异常类各自代表的错误,然后尝试设计合适的代码,分别产生并处理其中的一种异常。
时间: 2023-07-10 21:08:19 浏览: 85
JDK帮助文档(中文版)
1. NullPointerException:当尝试在一个空对象上调用方法或访问属性时,会抛出该异常。
```java
String str = null;
try {
str.length(); // 尝试在空对象上调用方法
} catch (NullPointerException e) {
System.out.println("发生了空指针异常: " + e.getMessage());
}
```
2. ClassCastException:当试图将一个对象强制转换为不是实例对象的类型时,会抛出该异常。
```java
Object obj = "Hello, World!";
try {
Integer num = (Integer)obj; // 尝试将字符串类型转换为整型
} catch (ClassCastException e) {
System.out.println("发生了类转换异常: " + e.getMessage());
}
```
3. NumberFormatException:当将一个字符串转换为数字时,如果字符串不是数字,则会抛出该异常。
```java
String str = "abc";
try {
int num = Integer.parseInt(str); // 尝试将字符串转换为整型
} catch (NumberFormatException e) {
System.out.println("发生了数字格式异常: " + e.getMessage());
}
```
4. NegativeArraySizeException:当创建一个负数长度的数组时,会抛出该异常。
```java
int[] arr = null;
try {
arr = new int[-1]; // 尝试创建一个负数长度的数组
} catch (NegativeArraySizeException e) {
System.out.println("发生了数组长度异常: " + e.getMessage());
}
```
5. NoSuchMethodException:当试图调用一个不存在的方法时,会抛出该异常。
```java
class Person {
public void sayHello() {
System.out.println("Hello, World!");
}
}
Person p = new Person();
try {
p.getClass().getMethod("sayBye"); // 尝试调用一个不存在的方法
} catch (NoSuchMethodException e) {
System.out.println("发生了方法不存在异常: " + e.getMessage());
}
```
阅读全文