title: ClassNotFoundException I didn't succeed to catch
body: <p>I read a lot of pages about the try/catch/finally process in java, but I didn't succeed to catch the <code>ClassNotFoundException</code> in my code. I used a <strong>for loop</strong> to open and save in rdfxml format every file in a directory I give as the argument. What I want is when I'm performing the code I get the e.getmessage() and the loop continue to treat the next file.</p>
  
  <p>The problem is my script works perfectly fine but I don't receive the e.getmessage() when the ClassNotFoundException occurs.</p>
  
  <pre><code>@SuppressWarnings("finally")
  public static void main(String[] args) {
  
      File dir = new File(args[0]);
      File[] directoryListing = dir.listFiles();
  
      if (directoryListing != null) {
          for (File owlFile : directoryListing){
              String name = owlFile.getName();
                      try {
                          translateOwlToRdfXml(owlFile,name);
                      }
                      catch (OWLOntologyCreationException|OWLOntologyStorageException|ClassNotFoundException e) {
                          System.out.println(name + " has not been saved into RDF/XML;");
                          System.out.println(e.getMessage());
                          }
                      finally {
                          continue;
                      }
                  }
  
              }
          }
  
  
      static void translateOwlToRdfXml(File owlFile, String name) throws OWLOntologyCreationException, OWLOntologyStorageException, ClassNotFoundException {
  
              OWLOntologyManager manager = OWLManager.createOWLOntologyManager();
  
          System.out.println("Loaded ontology: " + name);
          OWLOntology ontology;
          ontology = manager.loadOntologyFromOntologyDocument(owlFile);
          RDFXMLOntologyFormat rdfxmlFormat = new RDFXMLOntologyFormat();
  
              manager.saveOntology(ontology, rdfxmlFormat, IRI.create(owlFile));
          System.out.println("Saved ontology in RDF/OWL: " + name);
  
      }
  }
  </code></pre>
  
  <p>When I don't write the "finally" block, I receive this message:</p>
  
  <pre><code>Exception in thread "main" java.lang.reflect.InvocationTargetException
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
      at java.lang.reflect.Method.invoke(Method.java:483)
      at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)
  Caused by: java.lang.NoClassDefFoundError: com/github/jsonldjava/core/JsonLdError
      at org.openrdf.rio.jsonld.JSONLDParserFactory.getParser(JSONLDParserFactory.java:37)
      at org.openrdf.rio.Rio.createParser(Rio.java:195)
      at org.semanticweb.owlapi.rio.RioParserImpl.parseDocumentSource(RioParserImpl.java:241)
      at org.semanticweb.owlapi.rio.RioParserImpl.parse(RioParserImpl.java:191)
      at uk.ac.manchester.cs.owl.owlapi.ParsableOWLOntologyFactory.loadOWLOntology(ParsableOWLOntologyFactory.java:161)
      at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:975)
      at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:913)
      at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:928)
      at owl2rdf.owl2rdf.translateOwlToRdfXml(owl2rdf.java:57)
      at owl2rdf.owl2rdf.main(owl2rdf.java:32)
      ... 5 more
  Caused by: java.lang.ClassNotFoundException: com.github.jsonldjava.core.JsonLdError
      at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
      at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
      at java.security.AccessController.doPrivileged(Native Method)
      at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
      at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
      ... 15 more
  </code></pre>
  
  <p>But when I write the "finally", I receive nothing and the code continue to treat the next file. I thought I don't understand clearly how try/catch and throw methods work.</p>
  
  <p>Thanks in advance</p>