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

Exceptions und IO

  • Secretforce
  • 5. August 2009 um 22:08
  • Unerledigt
  • Secretforce
    3
    Secretforce
    Mitglied
    Punkte
    85
    Beiträge
    14
    • 5. August 2009 um 22:08
    • #1

    Ich habe eine frage ob mir jemand dort weiter helfen kann ich weiß nicht ob das richtig ist was ich gemacht habe.

    Ich bitte um Hilfe.

    Also :

    Es sollen die Abfragen ergänzt werden und eine adäquate Behandlung der möglicherweise auftretenden Standardexceptions an allen relevanten Stellen.

    [JAVA]

    import java.io.*;

    public class FileCopy
    {
    static void copy( InputStream in, OutputStream out ) throws IOException
    {
    // Hier findet der eigentliche Kopiervorgang statt, diese Methode ist
    //nicht Gegenstand der Betrachtung …
    }
    static void copyFile( String src, String dest )
    {

    FileInputStream fis = null;
    FileOutputStream fos = null;


    fis = new FileInputStream(src );
    fos = new FileOutputStream( dest );


    copy( fis, fos );


    if ( fis != null )


    if ( fos != null )


    }[/JAVA]

    Ich habe auch einen Lösungsansatz weiß aber nicht ob das so richtig ist oder ob noch etwas fehlt.

    Meine Lösung :

    if ( fis != null )
    try{
    fis.close();
    } catch(IOException e){

    ; }


    if ( fos != null )
    ry{
    fos.close();
    } catch(IOException e){

    ; }

  • anwesender
    8
    anwesender
    Mitglied
    Reaktionen
    12
    Punkte
    647
    Beiträge
    125
    • 6. August 2009 um 00:59
    • #2

    musst du nicht schon beim erstellen...

    Code
    FileInputStream fis = null;
    FileOutputStream fos = null;
    
    
    
    
    fis = new FileInputStream(src );
    fos = new FileOutputStream( dest );

    ...auf IOExceptions checken?

    sprich:

    Code
    FileInputStream fis = null;
    FileOutputStream fos = null;
    
    
    try
    {
    fis = new FileInputStream(src );
    fos = new FileOutputStream( dest );
    }
    catch(FileNotFoundException e)
    {
    // handle exception
    }
    Alles anzeigen

    Thomas

  • damike
    8
    damike
    Mitglied
    Reaktionen
    11
    Punkte
    681
    Beiträge
    111
    • 6. August 2009 um 09:04
    • #3

    Hi

    Ich würde alles abfangen, und mit finally ein Ressource Leak vermeiden. Um den User nach außen zu informieren würde ich ein rethrow in copyFile machen. Würde also nicht unbedingt um jedes if ein catch machen - außer du willst dem Benutzer solche Feinheiten mitteilen ... My 10 cent :winking_face:

    lg

  • Old Thrashbarg
    5
    Old Thrashbarg
    Mitglied
    Reaktionen
    2
    Punkte
    212
    Beiträge
    34
    • 6. August 2009 um 10:58
    • #4
    Zitat von Secretforce


    if ( fis != null )


    Wieso machst du das? Der FileInputStream ist ja wahrscheinlich nur dann null wenn der Konstruktor eine Exception geworfen hat. Dann kommst du aber eh nicht bis dort hin.

    Ich würd wahrscheinlich die Exceptions einfach durchreichen.

    Code
    ...
    static void copyFile(String src, String dest)throws IOException, FileNotFoundException {
    ...
    }



    [Edit]: Eigentlich sagt damike ja eh schon das selbe...

  • Secretforce
    3
    Secretforce
    Mitglied
    Punkte
    85
    Beiträge
    14
    • 6. August 2009 um 14:43
    • #5

    Hi vielen dank schon mal für eure Hilfe.

    Aber Old Thrashbarg ich soll doch an den möglichen stellen eine Exception werfen.
    Und so wie du sagst ist ja zu allgemein.

  • Secretforce
    3
    Secretforce
    Mitglied
    Punkte
    85
    Beiträge
    14
    • 6. August 2009 um 20:41
    • #6

    Ich hab aber auch nochmal eine andere Frage.

    Wie mache ich, dass die Methode copyFile soll eine IdentException zurückgeben, wenn die übergebenen Strings identisch sind. Es soll dafür eine eigene Klasse IdentException geschrieben werdenbund bauen Sie diese Exception in die obige Anwendung ein. ??

    LG Stefan

  • anwesender
    8
    anwesender
    Mitglied
    Reaktionen
    12
    Punkte
    647
    Beiträge
    125
    • 6. August 2009 um 20:50
    • #7

    ein

    Code
    if(src.equals(dest))
        throw new IdentException("same filenames");

    und die exception... da verweis ich gleich mal auf mein noch nicht fertiges tutorial :grinning_squinting_face:
    http://vowi.fsinf.at/wiki/TU_Wien:E…gene_Exceptions

    Thomas

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    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

Rechtliches

Impressum

Datenschutzerklärung