找到文件但不包含任何内容时抛出哪个异常?

时间:2018-03-26 19:04:54

标签: java exception exception-handling

如果文件为空,应该抛出哪个异常?

例如,

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(); 

由于

5 个答案:

答案 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") 
}