我遇到了一个读取文本文件并对其进行分析的代码库。我对使用异常的方式有点困惑。已定义了一个单独的异常类AppFileReaderException
,其中扩展类仅返回异常的错误消息。extends
此外,该函数getSymbol()
同时使用throws
和try and catch block
。该error()
函数也有一个异常处理程序,可能会导致嵌套异常!在基本的 try 和 catch 就足够的情况下,进行这种异常处理有什么好处吗?是否有任何理由扩展异常类,将两者结合起来throws
并try-catch
阻塞?这些是过度杀戮还是有充分的理由拥有这样的构造?
package AppName;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
public class AppFileReader {
//
public char getSymbol() throws AppFileReaderException {
try {
//do something
} catch (Exception e) {
error("IO Error: " + fileName + "@" + currentLineNumber);
}
return somechar;
}
public void error(String errorMsg) throws AppFileReaderException {
throw new AppFileReaderException(errorMsg);
}
public AppFileReader(String fileName) throws FileNotFoundException {
reader = new LineNumberReader(new FileReader(fileName));
this.fileName = fileName;
}
}
//------------------------------------------------ ------------------
的扩展类AppFileReaderException
如下:
package AppName;
public class AppFileReaderException extends Exception {
public AppFileReaderException(String msg)
{
super(msg);
}
}