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 :
Votre première application graphique avec Python et Glade VoirCe guide vous aidera à créer pas à pas votre première application graphique. Nous allons utiliser le langage de programme Python et l'API graphique GTK, en utilisant le logiciel Glade pour créer facilement les interfaces graphiques. C'est de la...
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 - L'héritage VoirLa notion d'héritage Le concept d'héritage est un des concepts les plus importants de la programmation orientée objet, car il conditionne irréversiblement la façon selon laquelle un code Java est écrit. L'héritage est un mécanisme permettant de...
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