запрос обработки исключений Java - PullRequest
2 голосов
/ 04 февраля 2012
public class Employee {


public static void main(String[] args) {
   int j=3;
   staples[] stemp = new staples[j];
   String file_name = "d:/personal/11636470/NetBeansProjects/Employee/src/employee/Xanadu.txt";

   throws IOException 

     {

   Scanner s = null;
    try {
        s = new Scanner(
                  new BufferedReader(
                    new FileReader("file_name")));

        while (s.hasNext()) 
        {
            System.out.println(s.next());
        }
        } finally 
        {
        if (s != null) 
            {
             s.close();
            }
        }



 try

 {

 BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));  

 for ( j=0;j<3;j++)
        {
            stemp[j] = new staples();

            System.out.print("Enter your name : ");
            stemp[j].setName(reader.readLine());

            System.out.println("Enter your age : "); 
            stemp[j].setAge(Integer.parseInt(reader.readLine()));


        }


 for ( j=0;j<3;j++)
        {
            System.out.println("Employee number:" + j +" name:"+stemp[j].getName()+" Age:"+stemp[j].getAge() );

        }


 reader.close(); // VERY IMPORTANT TO CLOSE 






 System.out.println("Program ended"); 

 }

 catch(java.io.IOException ex)
 {
     System.out.println("Error is " + ex.getMessage() ); 
 }



}

}}

Проблема кажется простой, я получаю сообщение об ошибке в строке «throws IOException», есть ли что-то не так с методом try и catch, который я реализовал?

Этот код состоит из двух частей: одна предназначена для чтения файла xanadu.txt, а другая - для копирования данных о сотрудниках. У обеих есть попытки try и catch.

Ответы [ 2 ]

1 голос
/ 04 февраля 2012

Это та часть, которую Вы совершенно неправильно поняли.

try
{
   s = new Scanner((Readable) new BufferedReader(new FileReader("file_name")));
   while (s.hasNext())
      System.out.println(s.next());
   } catch (IOException e)
   {
      // Do the error stuff.
      e.printStackTrace();
   } finally
   {
      // Do it anyway. If error happens or not.
      if (s != null)
         s.close();
   }
}

и что throws IOException находится в неправильном месте, его следует разместить здесь:

public static void main(String[] args) throws IOException {

В этом случае вам не нужно будет пытаться ловить блоки - вы просто передаете это исключение наложенному методу (в вашем случае вам не нужно об этом беспокоиться), чтобы он мог обработать выброшенное исключение, но если вы хотите обработать исключения с try, catch блок вам не понадобится.

1 голос
/ 04 февраля 2012

Предложение throws действительно в объявлении метода, а не в теле метода.

...