如果文件为空,应该抛出哪个异常?
例如,
List<Cars> cars = new LinkedList<Cars>();
Scanner inFile = new Scanner(new FileReader(filename));
if(!inFile.hasNextLine()) {
throw new ???????????????????
}
while(inFile.hasNextLine()) {
String line = inFile.nextLine();
String[] CarInfo = line.split("\\|");
Car tmpCar = new Car(CarInfo[0],CarInfo[1],CarInfo[2]);
cars.add(tmpCar);
}
inFile.close();
由于
答案 0 :(得分:3)
您可以使用自己的消息创建自己的自定义异常类,如下所示:
public class EmptyFileException extends Exception {
private String message = "The file is empty!";
public EmptyFileException() {
super(message);
}
}
然后在你的代码中你可以抛出新的异常:
Scanner inFile = new Scanner(new FileReader(filename));
if(!inFile.hasNextLine()) {
throw new EmptyFileException();
}
// ...
乙
答案 1 :(得分:1)
您可以创建自己的例外。
class EmptyExceptoin extends Exception
{
public EmptyException() {}
public EmptyException(List list)
{
super(list);
}
}
然后在您的代码中抛出异常:
Scanner inFile = new Scanner(new FileReader(filename));
if(!inFile.hasNextLine()) {
throw new EmptyException();
}
答案 2 :(得分:0)
当文件存在但是为空时,标准Java库没有一般例外。
看起来这种情况对您的应用来说是特别的。因此,您可以通过扩展Exception类来创建自己的异常类型。看看这里 - How to create custom exceptions in Java?
答案 3 :(得分:0)
你有两种可能性:
抛出RuntimeException
,例如IllegalArgumentException
。如果异常不可恢复从客户端执行。
如果必须由客户端处理异常,则抛出自定义检查异常。例如EmptyFileException
public class EmptyFileException extends Exception{ }
答案 4 :(得分:0)
创建一个继承自异常类
的自定义异常类Class EmptyFileException extends Exception{
public EmptyFileException(){
}
public EmptyFileException(String customMessage){
super(customMessage)
}
}
您可以在try catch或任何if语句中使用它
try
{
//do stuff.....
}catch(Exception e){
throw new EmptyFileException("File not found")
}