From 2b362a9d031a6a9f606036f35693354810f58eee Mon Sep 17 00:00:00 2001 From: Yohan Boujon Date: Thu, 19 Oct 2023 22:30:44 +0200 Subject: [PATCH] Exercice 6, Partie 3. --- src/exercice6part3.java | 23 +++++++++++++++++++++++ src/partie6/ErrConst.java | 36 ++++++++++++++++++++++++++++++++++++ src/partie6/ErrDepl.java | 13 +++++++++++++ src/partie6/Point.java | 24 ++++++++++++++++++++++++ 4 files changed, 96 insertions(+) create mode 100644 src/exercice6part3.java create mode 100644 src/partie6/ErrConst.java create mode 100644 src/partie6/ErrDepl.java create mode 100644 src/partie6/Point.java diff --git a/src/exercice6part3.java b/src/exercice6part3.java new file mode 100644 index 0000000..46a27ea --- /dev/null +++ b/src/exercice6part3.java @@ -0,0 +1,23 @@ +import partie6.ErrConst; +import partie6.ErrDepl; +import partie6.Point; + +// TestPoint +public class exercice6part3 { + public static void main(String[] args) { + try { + Point a = new Point(Integer.parseInt(args[0]), 4); + a.affiche(); + a.deplace(10,Integer.parseInt(args[1])); + a.affiche(); + } catch (ErrConst e) { + System.out.println("Value of y: " + e.getOrd()); + System.out.println("Value of x: " + e.getAbs()); + e.printStackTrace(); + System.exit(-1); + } catch (ErrDepl e) { + e.printStackTrace(); + System.exit(-1); + } + } +} diff --git a/src/partie6/ErrConst.java b/src/partie6/ErrConst.java new file mode 100644 index 0000000..5db3057 --- /dev/null +++ b/src/partie6/ErrConst.java @@ -0,0 +1,36 @@ +package partie6; + +public class ErrConst extends Exception { + String message; + int abs; + int ord; + + ErrConst() { + this.message = "Exception thrown."; + } + + ErrConst(String s) { + this.message = s; + } + + ErrConst(int x, int y) { + this.abs = x; + this.ord = y; + if (x < 0) + this.message = "X can't be negative"; + if (y < 0) + this.message = "Y can't be negative"; + } + + public int getAbs() { + return this.abs; + } + + public int getOrd() { + return this.ord; + } + + public String getMessage() { + return message; + } +} diff --git a/src/partie6/ErrDepl.java b/src/partie6/ErrDepl.java new file mode 100644 index 0000000..71ff678 --- /dev/null +++ b/src/partie6/ErrDepl.java @@ -0,0 +1,13 @@ +package partie6; + +public class ErrDepl extends Exception { + String message; + + ErrDepl() { + this.message = "When moving a point, the result can't be negative."; + } + + public String getMessage() { + return message; + } +} diff --git a/src/partie6/Point.java b/src/partie6/Point.java new file mode 100644 index 0000000..dca9511 --- /dev/null +++ b/src/partie6/Point.java @@ -0,0 +1,24 @@ +package partie6; + +public class Point { + public int x; + public int y; + + public Point(int x, int y) throws ErrConst { + if ((x < 0) || (y < 0)) + throw new ErrConst(x, y); + this.x = x; + this.y = y; + } + + public void affiche() { + System.out.println("Coordonnees [X= " + this.x + "],[Y= " + this.y + "]"); + } + + public void deplace(int dx, int dy) throws ErrDepl { + if (((x + dx) < 0) || ((y + dy) < 0)) + throw new ErrDepl(); + x += dx; + y += dy; + } +}