用Java编写一个程序,按行读取文本文件的内容并输出。设计一个自定义异常类处理可能的文件读取异常。
时间: 2023-06-15 12:07:21 浏览: 58
下面是一个简单的Java程序,它可以按行读取文本文件的内容并输出。同时,它还定义了一个自定义异常类FileReadException,用于处理可能出现的文件读取异常。
```java
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
class FileReadException extends Exception {
public FileReadException(String message) {
super(message);
}
}
public class FileRead {
public static void main(String[] args) {
String fileName = "test.txt";
try {
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
reader.close();
} catch (IOException e) {
System.out.println("Error reading file: " + e.getMessage());
FileReadException ex = new FileReadException("Error reading file: " + e.getMessage());
ex.initCause(e);
throw ex;
} catch (FileReadException e) {
System.out.println("File read exception: " + e.getMessage());
}
}
}
```
在这个程序中,我们首先定义了一个自定义异常类FileReadException。这个类继承自Exception,它只有一个构造函数,可以接受一个字符串参数作为异常描述信息。
然后,在主函数中,我们尝试打开一个文件并按行读取其中的内容。如果读取过程中发生了IOException,我们会抛出一个FileReadException异常,并将IOException作为它的cause。如果在catch块中捕获到了FileReadException异常,我们会输出异常信息。
需要注意的是,在使用自定义异常类时,我们应该尽量避免捕获Exception异常,因为这会捕获所有类型的异常,包括运行时异常,从而导致代码出现意外的行为。