Readline во время ошибки компиляции Java - PullRequest
2 голосов
/ 01 мая 2011

Я знаю, что я делаю что-то очень неправильно, но я буду откровенен здесь, мои знания Java очень слабы.Всякий раз, когда я вызываю dataIn.readLine (), я получаю эту ошибку времени компиляции

unreported exception java.io.IOException; must be caught or declared to be thrown

Вот код, я знаю, что соглашения об именах ужасны и почти ничего не делают

import java.io.*; 
public class money {
    public static void main( String[]args ){
        String quarters; 
        String dimes; 
        String nickels; 
        String pennies; 
        int iquarters; 
        int idimes;
        int inickels; 
        int ipennies; 
        BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in)); 

        System.out.println( "Enter the number of quarters. " ); 
        quarters = dataIn.readLine(); 
        System.out.println( "Enter the number of dimes" ); 
        dimes = dataIn.readLine(); 
        System.out.println( "Enter the number of nickels" ); 
        nickels = dataIn.readLine(); 
        System.out.println( "Enter the number of pennies" ); 
        pennies = dataIn.readLine(); 

        iquarters = Integer.parseInt( quarters ); 
        idimes = Integer.parseInt( dimes ); 
        inickels = Integer.parseInt( nickels ); 
        ipennies = Integer.parseInt( pennies ); 

    }
}

http://www.ideone.com/9OM6O Здесь также скомпилировано с тем же результатом.

Ответы [ 2 ]

6 голосов
/ 01 мая 2011

Изменить это:

public static void main( String[]args ){

до:

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

Чтобы понять, зачем вам это нужно, прочитайте это: http://download.oracle.com/javase/tutorial/essential/exceptions/

4 голосов
/ 01 мая 2011

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

try
{
    dataIn.readLine();
    // ... etc
}
catch(IOException e)
{
    // handle it. Display an error message to the user?
}
...