1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

try catch probleme

  • hajaj
  • 4. Dezember 2004 um 00:18
  • Unerledigt
  • hajaj
    4
    hajaj
    Mitglied
    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
    26
    michi204
    Mitglied
    Reaktionen
    63
    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
    9
    Sensei
    Mitglied
    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...). :)

    ------------------------------------------------------------
    Where you live should not decide,
    whether you live or whether you die
    Bono, "Crumbs from your Table"
    ------------------------------------------------------------

  • Unic0der
    21
    Unic0der
    Mitglied
    Reaktionen
    4
    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 ... :winking_face:

    http://www.informatik-forum.at/showthread.php?t=66532

  • Sensei
    9
    Sensei
    Mitglied
    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...

    ------------------------------------------------------------
    Where you live should not decide,
    whether you live or whether you die
    Bono, "Crumbs from your Table"
    ------------------------------------------------------------

  • Unic0der
    21
    Unic0der
    Mitglied
    Reaktionen
    4
    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. :)

    http://www.informatik-forum.at/showthread.php?t=66532

  • michi204
    26
    michi204
    Mitglied
    Reaktionen
    63
    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.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung