Skip to content
Snippets Groups Projects
Commit 5ec4296b authored by HUET Severin's avatar HUET Severin
Browse files

Initialisation du dépôt avec les premiers fichiers

parents
No related branches found
No related tags found
No related merge requests found
DevObjet/
COMPTE RENDU TD 1
Mise en place d'un dépôt local :
4) git init, création d'un dépot de base.
5) git status pour savoir les dépots suivis par git.
6)
function creeInitiales(nom: string, prenom: string): string { //Q.5 : Modification de la fonction pour prendre en compte les classes
if (nom.trim().length === 0 && prenom.trim().length === 0) {
throw new NomEtPrenomVideError("Le nom et le prénom ne peuvent pas être vides.");
}
if (nom.trim().length === 0) {
throw new NomVideError("Le nom ne peut pas être vide.");
}
if (prenom.trim().length === 0) {
throw new PrenomVideError("Le prénom ne peut pas être vide.");
}
return nom[0].toUpperCase() + prenom[0].toUpperCase();
}
/* Q.1
console.log(creeInitiales("Huet", "Séverin")); //Initiale HS
console.log(creeInitiales("", "Séverin")); //Erreur initiale S
console.log(creeInitiales("Huet", "")); //Erreur Initiale H
*/
//Q.2 : Si le nom ou le prenom est une chaine vide il y'a une erreur
//Q.3 : Exception Try catch
/*
try {
console.log(creeInitiales("Huet", "Séverin")); //Initiale HS
console.log(creeInitiales("", "Séverin")); //Exception levée
} catch (error) {
console.error(error.message);
}
*/
//Q.4 : Ajout des classes d'exceptions
class NomVideError extends Error {
constructor(message: string) {
super(message);
this.name = "NomVideError";
}
}
class PrenomVideError extends Error {
constructor(message: string) {
super(message);
this.name = "PrenomVideError";
}
}
class NomEtPrenomVideError extends Error {
constructor(message: string) {
super(message);
this.name = "NomEtPrenomVideError";
}
}
//Q.6 : Appelle de la fonction initiale avec des chaines vides
try {
console.log(creeInitiales("", "")); // Lève NomEtPrenomVideError
} catch (error) {
if (error instanceof NomEtPrenomVideError) {
console.log((error as Error));
} else if (error instanceof NomVideError) {
console.log((error as Error));
} else if (error instanceof PrenomVideError) {
console.log((error as Error));
}
} finally {
console.log("Fin du programme.");
}
\ No newline at end of file
/*
Q.7 : la création de trois classes d'exception distinctes peut être excessive.
Elles ne font que différencier des cas d’erreur très similaires,
ce qui alourdit le code sans réelle valeur ajoutée.
Tout le code peut etre simplifier en créant une seule classe InitialesError,
avec a chaque fois un message adapté selon le cas de l'erreur.
*/
class InitialesError extends Error {
constructor(message: string) {
super(message);
this.name = "InitialesError";
}
}
function creeInitiales(nom: string, prenom: string): string {
if (nom.trim().length === 0 && prenom.trim().length === 0) {
throw new InitialesError("Le nom et le prénom ne peuvent pas être vides.");
}
if (nom.trim().length === 0) {
throw new InitialesError("Le nom ne peut pas être vide.");
}
if (prenom.trim().length === 0) {
throw new InitialesError("Le prénom ne peut pas être vide.");
}
return nom[0].toUpperCase() + prenom[0].toUpperCase();
}
try {
console.log(creeInitiales("", "")); // Lève InitialesError
} catch (error) {
if (error instanceof InitialesError) {
console.error(`Erreur: ${error.message}`);
} else {
console.error("Une erreur inattendue s'est produite.");
}
} finally {
console.log("Fin du programme.");
}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment