2016-07-07 5 views
1

Ich wollte eine Methode erstellen, um Dateien zu schreiben. Aber ich habe diesen FehlerEclipse sagt, "EnumBody" einfügen, um EnumDeclaration abzuschließen

Syntax error, insert "EnumBody" to complete EnumDeclaration 

Hier ist mein Code

import java.io.*; 
import java.util.*; 
public class ClassA throws IOException{ 
    public void writer(){ 
    PrintWriter writer = new PrintWriter("Name.txt", "UTF-8"); 
    Scanner in = new Scanner(System.in); 
    writer.println("The first line"); 

    writer.close(); 
    } 
} 

und meine Hauptklasse ist

public class Main { 
public static void main(String[] args){ 
    ClassA test = new ClassA(); 
    test.writer(); 
    } 
} 

Es gibt rote Linie unter Klasse (in Writer-Klasse) und '{' nach IOException. Was ist das Problem und wenn es nicht gelöst werden kann, wie eine Methode zum Schreiben auf Datei zu deklarieren.

Ich benutze Eclipse unter Windows10.

+2

Klassen nicht werfen Ausnahmen. – Zircon

Antwort

2

Klassen werfen keine Ausnahmen, Methoden tun. Verschieben Sie throws IOException in die Methodensignatur writer().

import java.io.*; 
import java.util.*; 
public class ClassA { 
    public void writer() throws IOException { 
    PrintWriter writer = new PrintWriter("Name.txt", "UTF-8"); 
    Scanner in = new Scanner(System.in); 
    writer.println("The first line"); 

    writer.close(); 
    } 
} 
+0

Es scheint, dass es eine IOException auf Hauptmethode auch geben sollte. Habe ich recht? – future2020

+0

Ich würde die IOException in der 'Main' Methode fangen, anstatt sie aus' Main' zu entfernen. –

+0

Sie können Exceptions von '' 'main''' gut lösen, sie werden vom Thread-Exception-Handler abgefangen. (genau wie ungeprüfte Ausnahmen) –

0

Methode Haupt auch muss throws IOException

import java.io.IOException; 

public class Main { 

public static void main(String[] args) throws IOException { 
    // TODO Auto-generated method stub 
    ClassA test = new ClassA(); 
    test.writer(); 
} 

} 
Verwandte Themen