Rechercher : dans
Par :

[Java] Créer une excpetion

Dernière réponse le 25 jui 2005 à 13:31:23 jebok, le 25 jui 2005 à 12:25:09 
 Signaler ce message aux modérateurs

Bonjour,

je souhaite créer une exception qui sera levé si le fichier sélectionné par l'utilisateur (dans mon application) ne respecte pas un certain format (exemple : les lignes du fichier doivent respecter un format spécifique).

Comment faire ? Que mettre dans ma classe MauvaisFormatException ?

Merci de votre aide

Meilleures réponses pour « [Java] Créer une excpetion » dans :
Java - Premier programme VoirPremière application avec Java La première chose à faire est de créer un simple fichier texte (sans mise en forme) et de taper les quelques lignes suivantes : // Votre premiere application en Java class FirstApp { public static void main...
Java - Les objets VoirLa création d'objets Un objet est une instance de classe, la création d'objets s'appelle donc l'instanciation. Cette instanciation se fait grâce à l'opérateur new suivi du nom de la classe à instancier et de parenthèses contenant les paramètres...
Java - Constructeurs VoirLe constructeur: une méthode particulière Pour instancier une classe, c'est-à-dire créer un objet à partir d'une classe, il s'agit d'utiliser l'opérateur new. En réalité l'opérateur new, lorsqu'il est utilisé, fait appel à une méthode spéciale de...

1

choubaka, le 25 jui 2005 à 13:15:27
Répondre à choubaka

2

 HackTrack, le 25 jui 2005 à 13:31:23
  • +2

Tu trouveras ci-dessous un exemple (bête et méchant) de classe qui essaie d'ouvrir un fichier.

Si l'extension du fichier est différente de ".txt" ou ".log", une exception est levée (avec un message spécifique).
Si une ligne ne commence pas par "DATA#", la même exception est levée mauis avec un message différent.
Une fois que tout le fichier a été lu, une exception est levée si le fichier ne contient pas 100 lignes au minimum.

J'ai placé la classe d'excepion 'MauvaisFormatException' en classe interne, mais rien ne t'empêche de créer un classe à part entière (c'est même mieux).

Comme tu peux le voir, je stocke tous les messages que l'exception peut renvoyer dans des public static final String. Je passe le message qui convient en argument à l'exception

throw new MauvaisFormatException(MauvaisFormatException.BAD_FILE_FORMAT);


C'est la méthode getMessage() qu tu dois overrider (surcharger) dans ton exception


import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;

/*
 * Created on Jul 25, 2005
 *
 */

/**
 * @author Philippe Fery
 *
 */
public class ExceptionDemo {

	public ExceptionDemo() {
		super();
	}

	public void openfile(String filePath) throws MauvaisFormatException, FileNotFoundException, IOException {
		File file = new File(filePath);
		int lineCounter = 0;
		if (file.getName().endsWith(".txt") || file.getName().endsWith(".log")) {
			BufferedReader reader = new BufferedReader(new FileReader(file));
			String line = "";
			while ((line = reader.readLine()) != null) {
				lineCounter++;
				if (line.startsWith("DATA#")) {} else {
					throw new MauvaisFormatException(MauvaisFormatException.BAD_FILE_FORMAT);
				}
			}
			if (lineCounter < 100) {
				throw new MauvaisFormatException(MauvaisFormatException.BAD_FILE_EXTENSION);
			}
		} else {
			throw new MauvaisFormatException(MauvaisFormatException.BAD_FILE_LENGTH);
		}

	}

	class MauvaisFormatException extends Exception {
		public static final String BAD_FILE_EXTENSION = "Extension de fichier non valide";
		public static final String BAD_FILE_FORMAT = "Mauvais format de fichier";
		public static final String BAD_FILE_LENGTH = "Mauvaise taille de fichier";
		public String message;

		public MauvaisFormatException() {
			super();
			this.message = BAD_FILE_FORMAT;
		}

		public MauvaisFormatException(String message) {
			super(message);
			this.message = message;
		}

		public String getMessage() {
			return message;
		}
	}

	public static void main(String[] args) {
		ExceptionDemo demo = new ExceptionDemo();
		try {
			demo.openfile("c:/dir.txt");
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (MauvaisFormatException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}



;-)
HackTrack

Répondre à HackTrack