Avatar billede fido26 Praktikant
10. december 2001 - 16:45 Der er 2 kommentarer og
1 løsning

Problemer med IOException

Hejsa!
Jeg roder lidt at lave et filsystem. Jeg har en Partition klasse, hvor jeg har følgende konstruktør :
  public Partition(String partitionName) throws DiskError
  // konstruktør for en eksisterende partition
  {
    try
    {
      file = new RandomAccessFile(partitionName, \"r\");
      file.close();
      file = new RandomAccessFile(partitionName, \"rw\");
      blocks = (int) (file.length() / BLOCKSIZE);
    }
    catch (IOException e)
    {
      throw new DiskError(\"Partition not found\");
    } 
  }
Min plan var så at når jeg skal mounte filsystemet i klassen FileSystem, ville jeg køre konstruktøren for den eksisterende partition men jeg har lidt bøvl med at håndtere de der IOExceptions. Jeg får flg. Compiler Output :
FileSystem.java:20: unreported exception DiskError; must be caught or declared to be thrown
        Partition p = new Partition(\"test.par\");
                        ^
FileSystem.java:22: exception java.io.IOException is never thrown in body of corresponding try statement
    catch (IOException e)
    ^
FileSystem.java:17: missing return statement
  {
  ^
3 errors
når jeg prøver at køre :
  public static FileSystem mount(String name) //throws DiskError
  // mounter filsystemet (gør det klar til brug)
  {
    try
    { 
        Partition p = new Partition(\"test.par\");
    }
    catch (IOException e)
    {
      // throw new DiskError(\"Partition not found\");
      System.out.println(\"Partition not found\");
    }     
  }
Er der evt. nogen der kunne give mig et bud på hvad der er galt??

M.v.h.
Fido26
Avatar billede cs_henrik Nybegynder
10. december 2001 - 16:50 #1
Din constructor tager catcher selv en IOException og kaster den ikke videre. Derfor giver det ikke mening at forsøge at catche den længere oppe.

Du skal i din public static FileSystem mount(String name) bruge en try {... }catch(DiskError e){...}
Avatar billede fido26 Praktikant
10. december 2001 - 16:54 #2
Jeg havde imidlertid selv fundet ud af det men jeg giver dig pointene alligevel.
Tak for indsatsen.....
Avatar billede cs_henrik Nybegynder
10. december 2001 - 16:56 #3
Selv tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester