Exception in thread "main" java.lang.NullPointerException

Fermé
fatoooom Messages postés 1 Date d'inscription mardi 7 mai 2013 Statut Membre Dernière intervention 7 mai 2013 - 7 mai 2013 à 20:39
KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 - 7 mai 2013 à 20:45
je suis entrain de faire une transformation d'un méta-modèle à un texte, et pour cela je dois importer mon méta-modèle pour lui utiliser après, voici mon programme:

package a;

import java.io.IOException;
import java.util.*;

import org.eclipse.emf.common.util.EList;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IWorkspaceRoot;
import Protocol.*;


import org.eclipse.core.resources.ResourcesPlugin;

public class mai {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		try {
		
		ProtocolPackage model = ProtocolPackage.eINSTANCE;
		
		// Create a resource set.
		ResourceSet resourceSet = new ResourceSetImpl();
		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("Protocol", new XMIResourceFactoryImpl());
		
		
		// Get the URI of the model file.
		URI uri = URI.createURI("file:/C:/runtime-New_configuration/aaaa/My3.protocol");
		
		// Create a resource for this file.
		Resource resource = resourceSet.createResource(uri);
	        resource.load(null);


		// Try if the metamodel imported correctly 
		Systeme s = (Systeme)resource.getContents().get(0);
		EList<Template> list =s.getTemplates();
		Iterator i = list.iterator();
		while (i.hasNext())
			java.lang.System.out.println(((Template)i.next()).getName());
		java.lang.System.out.println(s.getNom());
		
		//return f;
		}
		
		catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		//System.out.println(f);
		
		
	}

}
  


lorsque j'essaye d'exécuter le programme, une erreur s'affiche dans le console:
Exception in thread "main" java.lang.NullPointerException
at a.mai.main(mai.java:43)
c'est à dire dans cette ligne: resource.load(null);
mais lorsque je supprime cette ligne, une autre erreur s'affiche:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unreachable catch block for IOException. This exception is never thrown from the try statement body

at a.mai.main(mai.java:57)

je veux savoir comment régler le problème
A voir également:

1 réponse

KX Messages postés 16734 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 24 avril 2024 3 015
7 mai 2013 à 20:45
resource.load(null);
Tu ne peux pas mettre null ici, il te faut un InputStream et/ou une Map !

Unreachable catch block for IOException.
Si tu décides qu'effectivement il faut enlever la ligne resource.load, alors tu dois aussi enlever ton try/catch car il ne sert plus à rien.
0