在Java中,异常处理是一种结构化的程序出错处理方式,它允许程序中的错误被捕捉并处理,而不是让程序崩溃。以下是一些与《第一行代码JAVA》中异常处理相关的练习题:
- 请编写一个程序,它尝试打开一个不存在的文件,并捕获可能发生的异常。
import java.io.FileInputStream;
import java.io.FileNotFoundException;
public class OpenFileExample {
public static void main(String[] args) {
try {
FileInputStream fis = new FileInputStream("nonexistentfile.txt");
} catch (FileNotFoundException e) {
System.out.println("文件未找到异常:" + e.getMessage());
} catch (Exception e) {
System.out.println("其他异常:" + e.getMessage());
}
}
}
- 请编写一个程序,它尝试执行除以零的操作,并捕获可能发生的异常。
public class DivisionExample {
public static void main(String[] args) {
try {
int result = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("算术异常:" + e.getMessage());
} catch (Exception e) {
System.out.println("其他异常:" + e.getMessage());
}
}
}
- 请编写一个程序,它尝试分配一个超出JVM内存大小的数组,并捕获可能发生的异常。
public class OutOfMemoryExample {
public static void main(String[] args) {
try {
int[] array = new int[1024 * 1024 * 1024]; // 尝试分配1GB的内存
} catch (OutOfMemoryError e) {
System.out.println("内存溢出异常:" + e.getMessage());
} catch (Exception e) {
System.out.println("其他异常:" + e.getMessage());
}
}
}
- 请编写一个程序,它尝试打开一个不存在的网络连接,并捕获可能发生的异常。
import java.net.Socket;
import java.net.UnknownHostException;
public class NetworkConnectionExample {
public static void main(String[] args) {
try {
Socket socket = new Socket("nonexistenthost", 80);
} catch (UnknownHostException e) {
System.out.println("未知主机异常:" + e.getMessage());
} catch (Exception e) {
System.out.println("其他异常:" + e.getMessage());
}
}
}
- 请编写一个程序,它尝试序列化一个不可序列化的对象,并捕获可能发生的异常。
import java.io.FileOutputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.io.IOException;
public class SerializationExample {
public static void main(String[] args) {
try {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("temp.ser"));
oos.writeObject(new NonSerializableClass());