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

Exceptions und IO

  • Secretforce
  • 5. August 2009 um 22:08
  • 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!
  • Secretforce
    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
    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
    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 ;)

    lg

  • Old Thrashbarg
    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
    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
    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
    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 :D
    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.

  1. Datenschutzerklärung
  2. Impressum