Ошибка исключения FileNotFound в простом коде подачи Java - PullRequest
0 голосов
/ 13 июня 2018

Я только начал этот проект и попытался проверить, правильно ли я иду.Я запускаю этот код, но получил одну ошибку «FileNotFound исключение должно быть перехвачено или выдано».Что мне теперь делать?Я иду правильным путем?

package com.company;
import java.util.Scanner;
import java.io.File;

public class Main
{

public static void main(String[] args)
{
Game game = new Game();
String s = game.OpenFile();
System.out.println(s);
}
}




class Game
{
    public Game(){
        moviename = " ";
    }
    private String moviename;
    public String OpenFile()
    {
        File file = new File("movienames.txt");
        Scanner ip = new Scanner(file);
        int rnum = (int)(Math.random()*10)+1;
        int count = 0;
        while(ip.hasNextLine())
        {
            moviename = ip.nextLine();
            count++;
            if(count==rnum)
            {
                break;
            }
        }
    return moviename;
    }

1 Ответ

0 голосов
/ 13 июня 2018

Да, вы идете правильным путем.Это предупреждение говорит о том, что вы должны обработать исключение FileNotFound.У вас есть два варианта: бросить его или заключить код в блок try-catch:

бросок исключение:

public String OpenFile() throws FileNotFoundException
{
    File file = new File("movienames.txt");
    Scanner ip = new Scanner(file);
    int rnum = (int)(Math.random()*10)+1;
    int count = 0;
    while(ip.hasNextLine())
    {
        moviename = ip.nextLine();
        count++;
        if(count==rnum)
        {
            break;
        }
    }
return moviename;
}

Try-Catch :

public String OpenFile() 
{
    try {
        File file = new File("movienames.txt");
        Scanner ip = new Scanner(file);
        int rnum = (int)(Math.random()*10)+1;
        int count = 0;
        while(ip.hasNextLine())
        {
          moviename = ip.nextLine();
          count++;
          if(count==rnum)
          {
              break;
           }
        } 
    }catch(Exception e) {
        e.printStackTrace();
    }
    return moviename;

Некоторые хорошие показатели:

Разница между try-catch и броском в java

https://beginnersbook.com/2013/04/try-catch-in-java/

...