# Probleme mit "throws IOException"



## dastool (14. Dezember 2005)

Salve,

Wir nehmen in der Schule grade Java durch, leider kann mir mein Dozent nicht weiterhelfen.
Wir sollen mit hilfe von 
include java.io.*;
eine 
Throws IOException mit einbauen. Leider spuckt mir mein Compiler (jdk1.5.0_06) immer denselben Fehler aus 

Compiliere C:\Heartbeat.java mit Java-Compiler
Heartbeat.java:8: illegal start of expression
throws IOException
^
1 error

Angeblich sei der befehlt "Throws" falsch... nun weiss ich nicht weiter, da wie gesagt unser Dozent keine große Hilfe ist, der immer auf dieselbe Doku hinweisst, die keiner aus meiner Klasse versteht 


//Edit der Code


```
import java.io.*;
import java.lang.*;
public class Heartbeat
{
  public static void main (String[] gagh)
	throws IOException
	{
	  int JahrG = 0, MonG = 0, Mon1 = 0, TagG = 0, Tag1 = 0, hG = 0, h1 = 0, MinG = 0, Min1 = 0, SecG = 0, differenz = 0, Summe = 0, gJahr = 0, aJahr = 0, gMon = 0, aMon = 0, gTag = 0, aTag = 0, gh = 0, ah = 0, gMin = 0, aMin = 0, gSec = 0, aSec = 0;
	   BufferedReader geburtsjahr = new BufferedReader(new InputStreamReader(System.in));
	   System.out.println("Bitte Geburtsjahr angeben: ");
	   gJahr = Integer.parseInt(geburtsjahr.readLine());
	   BufferedReader geburtsmonat = new BufferedReader(new InputStreamReader(System.in));
	   System.out.println("Bitte Geburtsmonat angeben: ");
	   gMon = Integer.parseInt(geburtsmonat.readLine());
	
	
	   BufferedReader geburtstag = new BufferedReader(new InputStreamReader(System.in));
	   System.out.println("Bitte Geburtstag angeben: ");
	   gTag = Integer.parseInt(geburtstag.readLine());
	
	   BufferedReader geburtsstunde = new BufferedReader(new InputStreamReader(System.in));
	   System.out.println("Bitte Geburtsstunde angeben: ");
	   gh = Integer.parseInt(geburtsstunde.readLine());
	
	   BufferedReader geburtsminute = new BufferedReader(new InputStreamReader(System.in));
	   System.out.println("Bitte Geburtsminute angeben: ");
	   gMin = Integer.parseInt(geburtsminute.readLine());
	   
	   BufferedReader geburtssekunde = new BufferedReader(new InputStreamReader(System.in));
	   System.out.println("Bitte Geburtssekunde angeben: ");
	   gSec = Integer.parseInt(geburtssekunde.readLine());
	   BufferedReader aktuelljahr = new BufferedReader(new InputStreamReader(System.in));
	   System.out.println("Bitte Aktuelles Jahr angeben: ");
	   aJahr = Integer.parseInt(aktuelljahr.readLine());
	   BufferedReader aktuellmonat = new BufferedReader(new InputStreamReader(System.in));
	   System.out.println("Bitte Aktueller Monat angeben: ");
	   aMon = Integer.parseInt(aktuellmonat.readLine());

	   BufferedReader aktuelltag = new BufferedReader(new InputStreamReader(System.in));
	   System.out.println("Bitte Aktueller Tag angeben: ");
	   aTag = Integer.parseInt(aktuelltag.readLine());
	   BufferedReader aktuellstunde = new BufferedReader(new InputStreamReader(System.in));
	   System.out.println("Bitte Aktuelle Stunde angeben: ");
	   ah = Integer.parseInt(aktuellstunde.readLine());
	   BufferedReader aktuellminute = new BufferedReader(new InputStreamReader(System.in));
	   System.out.println("Bitte Aktuelle Minute angeben: ");
	   aMin = Integer.parseInt(aktuellminute.readLine());
	   BufferedReader aktuellsekunde = new BufferedReader(new InputStreamReader(System.in));
	   System.out.println("Bitte Aktuelle Sekunde angeben: ");
	   aSec = Integer.parseInt(aktuellsekunde.readLine());
	   System.out.print("Ihr Herz schlägt zum ");
	   System.out.print(Summe);
	   System.out.print("ten mal.");

	  JahrG=(aJahr-gJahr)+12;
	  MonG=(aMon-gMon)+JahrG;
	  Mon1=MonG*30;
	  TagG=(aTag-gTag)+Mon1;
	  Tag1=TagG*24;
	  hG=(ah-gh)+Tag1;
	  h1=hG*60;
	  MinG=(aMin-gMin)+h1;
	  Min1=MinG*60;
	  SecG=(aSec-gSec)+Min1;
	  differenz=SecG;
	  Summe=differenz;
	  System.out.println(Summe);
	}
	System.out.print();
}
/**
// Anfang Variablen
  //Sekunde:  sec=1
  //Minute: 1min= 60 sec
  //Stunde: 1h= 60 min
  //Tag:	1T= 24h
  //Monat:  1Mon= 30T
  //Jahr:   1J=12Mon
  //Standartherzschlag: S= 60S/min
	int JahrG = 0;//Aktuelles Jahr - Geburtsjahr +12 Monate
	int MonG = 0;//Aktueller Monat - Geburtsmonat + Jahresdifferenz
	int Mon1 = 0; //Monatsdifferenz * 30 Tage
	int TagG = 0;//Aktueller Tag - Geburtstag + Monatsdifferenz
	int Tag1 = 0; //Tagesdifferenz * 24 Stunden
	int hG = 0; //Aktuelle Stunde - Geburtsstunde + Tagesdifferenz
	int h1 = 0; //Stundendifferenz * 60 Minuten
	int MinG = 0; //Aktuelle Minute - Geburtsminute + Stundendifferenz
	int Min1 = 0; //Minutendifferenz * 60 Sekunden
	int SecG = 0; //Aktuelle Sekunde - Geburtssekunde + Minutendifferenz
	int differenz = 0;//Differenz (=Schlagtakt)
	int Summe = 0;//Summe für Ausgabe
	int gJahr=0;//Geburtsjahr
	int aJahr=0;//Aktuelles Jahr
	int gMon=0;//Geburtsmonat
	int aMon=0;//Aktueller Monat
	int gTag=0;//Geburtstag
	int aTag=0;//Aktueller Tag
	int gh=0;//Geburtsstunde
	int ah=0;//Aktuelle Stunde
	int gMin=0;//Geburtsminute
	int aMin=0;//Aktuelle Minute
	int gSec=0;//Geburtssekunde
	int aSec=0;//Aktuelle Sekunde

	int differenz = SecG;
	int Summe = differenz;
	
	JahrG = (aJahr-gJahr)*12; //Berechnung Jahresdifferenz
	MonG = (aMon-gMon)+JahrG; //Berechnung Monatsdifferenz
	Mon1 = MonG*30;
	TagG = (aTag-gTag)+Mon1;//Berechnung Tagesdifferenz
	Tag1 = TagG*24;
	hG = (ah-gh)+Tag1; //Berechnung Stundendifferenz
	h1 = hG*60;
	MinG = (aMin-gMin)+h1; //Berechnung Minutendifferenz
	Min1 = MinG*60
	SecG = (aSec-gSec)+Min1; //Berechnung Sekundendifferenz/Schlagtakt
	
	int gJahr=window.document.Heartbeat.gJahr.value; //User-Daten einholen. Vom User gesetzt
	int aJahr=window.document.Heartbeat.aJahr.value;
	int gMon=window.document.Heartbeat.gMon.value;//User-Daten einholen. Vom User gesetzt
	int aMon=window.document.Heartbeat.aMon.value;
	int gTag=window.document.Heartbeat.gTag.value;//User-Daten einholen. Vom User gesetzt
	int aTag=window.document.Heartbeat.aTag.value;
	int gh=window.document.Heartbeat.gh.value;//User-Daten einholen. Vom User gesetzt
	int ah=window.document.Heartbeat.ah.value;
	int gMin=window.document.Heartbeat.gMin.value;//User-Daten einholen. Vom User gesetzt
	int aMin=window.document.Heartbeat.aMin.value;
	int gSec=window.document.Heartbeat.gSec.value;//User-Daten einholen. Vom User gesetzt
	int aSec=window.document.Heartbeat.aSec.value;
 *
 */
```


----------



## mart (14. Dezember 2005)

Tach,

um das zu beantworten, wäre etwas Code schon hilfreich...


----------



## teppi (14. Dezember 2005)

Mit "throws" wird eine Exception an die aufrufende Methode weitergereicht.. Wenn du nun also bspw. folgende Methode hast :

public void tuWas() throws IOException
{
    // Irgendwas machen ..     
}

Dann musst du in der aufrufenden Funktion mit einem sogenannten try-catch Block die möglicherweise geworfene Exception auffangen. Durch dieses "throws" musst du es halt nur nicht mehr in der Methode "tuWas" machen ... 

Mit diesem Mechanismus können Exceptions immer weiter gereicht werden, bis "jemand" damit was anfangen kann. Zu dem try-catch sagt dir google genug ..


----------



## dastool (14. Dezember 2005)

Komischerweisse kommt nun nach einem Windows-Update + Reboot beim kompilieren nicht mehr die fehlermeldung.

Es sind zwar immernoch fehler beinhaltet (schwarzer Bildschirm + ungewolltes Frame) aber ich denk, das bekomm ich noch hin 

Danke euch Zweien


----------

