1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

try catch probleme

  • hajaj
  • 4. Dezember 2004 um 00:18
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • hajaj
    Punkte
    100
    Beiträge
    14
    • 4. Dezember 2004 um 00:18
    • #1

    Also ich hab' da folgenden Code:

    Zitat

    public StringBuffer einlesen(){

    try {
    Class c = this.getClass();
    InputStream is = c.getResourceAsStream("data.txt");
    StringBuffer str = new StringBuffer();
    byte b[] = new byte[1];
    while ( is.read(b) != -1 ) {
    str.append(new String(b));
    }
    is.close();
    System.out.println(str);
    }
    catch (IOException e) {};

    return str;
    }

    Alles anzeigen


    Dummerweise sagt der Compiler immer "cannot ressolve symbol str". Scheint irgendwie mit dem try-catch Block zusammenzuhängen, weil der Fehler nicht auftritt wenn ich try-catch auskommentiere.

    Könnte mir jemand von euch verraten, wie ich den Code umändern muss, damit er mit try-catch funktioniert? (bzw. auch ein bisserl die Hintergründe erläutern)

    cheers,
    haj

  • michi204
    Punkte
    7.268
    Beiträge
    1.318
    • 4. Dezember 2004 um 00:40
    • #2

    hallo!

    probier es doch so:

    PHP
    public StringBuffer einlesen()
    {
     
    StringBuffer str = null;
    try
    {
    Class c = this.getClass();
    str = new StringBuffer();
    InputStream is = c.getResourceAsStream("data.txt");
    byte b[] = new byte[1];
     
    while ( is.read(b) != -1 )
    {
    str.append(new String(b));
    }
     
    is.close();
    System.out.println(str);
    }
    catch (IOException e)
    {}
     
    return str;
    }
    Alles anzeigen



    Wenn du ein Objekt in einem Block deklarierst, ist es außerhalb des Blocks nicht sichtbar.

    HTH
    LG Michi


    EDIT: Könnte eventuell mal jemand den Einrückungs-Bug beheben? :mad:

  • Sensei
    Punkte
    765
    Beiträge
    123
    • 4. Dezember 2004 um 10:24
    • #3

    oder einfach ALLES, inkl. dem return in den try block. so machs ich immer (hat das nachteile? denke nicht...). :)

  • Unic0der
    Punkte
    4.699
    Beiträge
    835
    • 4. Dezember 2004 um 10:52
    • #4
    Zitat von Sensei

    inkl. dem return

    Ich würde jetzt mal spontan sagen, dass das aber nicht funktionieren kann, weil dann das return nicht nach aussen sichtbar ist. Lasse mich aber gern eines besseren belehren ... ;)

  • Sensei
    Punkte
    765
    Beiträge
    123
    • 4. Dezember 2004 um 10:55
    • #5

    man müsste nach dem try (also außerhalb) noch ein return hingeben (sonst kompiliert es nicht). von der semantik her ändert das aber nichts.
    man müsste sich nur überlegen, was eigtl. passieren sollte (was zurückgegeben werden sollte) wenn man aus dem try block rausfliegt...

  • Unic0der
    Punkte
    4.699
    Beiträge
    835
    • 4. Dezember 2004 um 11:07
    • #6
    Zitat von Sensei

    man müsste nach dem try (also außerhalb) noch ein return hingeben (sonst kompiliert es nicht).

    Ach so, da hab ich dich missverstanden. So passt es natürlich. :)

  • michi204
    Punkte
    7.268
    Beiträge
    1.318
    • 4. Dezember 2004 um 11:28
    • #7
    Zitat von Sensei

    man müsste nach dem try (also außerhalb) noch ein return hingeben (sonst kompiliert es nicht). von der semantik her ändert das aber nichts.
    man müsste sich nur überlegen, was eigtl. passieren sollte (was zurückgegeben werden sollte) wenn man aus dem try block rausfliegt...


    das ist aber dann kein schöner stil :ausheck:

    am besten einfach deklarationen nicht im try-block unterbringen, sondern wie in C am beginn der methode. und den try-block möglichst klein halten.

    lg michi

  • Maximilian Rupp 27. Dezember 2024 um 12:06

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

  1. Datenschutzerklärung
  2. Impressum