Comment lancer une exception en interface
Résolu
Stoicien
Messages postés
78
Date d'inscription
Statut
Membre
Dernière intervention
-
Stoicien Messages postés 78 Date d'inscription Statut Membre Dernière intervention -
Stoicien Messages postés 78 Date d'inscription Statut Membre Dernière intervention -
Bonjour, Tout d'abort,je remercie tout ceux qui oeuvre pour que nous debutant en programmation puissions apprendre mieux ce que nous aimons de tout coeur :la programmation.Le fait de recevoir dans un bref delai la reponse aux peoccupation est un fait à saluer.
Encore merci !
VOICI LE PROGRAMME QUE J'AI ECRIS EN CLASSE ABSTARCT
LA SOMME
package calculadoraabstract;
public class Sumar extends Calculadora{
public Sumar(int x,int y,double Resultado) {
super(x,y,Resultado);
}
public double getResultado() {
return (x+y);
}
public void setX(int i) {
throw new UnsupportedOperationException("Not yet implemented");
}
}
LA SOUSTRACTION
package calculadoraabstract;
public class Restar extends Calculadora{
public Restar(int x,int y,double Resultado) {
super(x,y,Resultado);
}
public double getResultado() {
return (x-y);
}
}
LA DIVISION
package calculadoraabstract;
public class Dividir extends Calculadora{
// private int y;
public Dividir(int x,int y,double Resultado) {
super(x,y,Resultado);
}
public void sety(int y)throws Exception {
if(y<=0)throw new Exception("El divisor Y tiene que ser mayor que cero");
this.y=y;
}
public double getResultado() {
return (x/y);
}
}
LA MULTIPLICATION
package calculadoraabstract;
public class Multiplicar extends Calculadora{
public Multiplicar(int x,int y,double Resultado) {
super(x,y,Resultado);
}
public double getResultado() {
return (x*y);
}
}
LA CLASSE ABSTRACT CALCULADORA
package calculadoraabstract;
public abstract class Calculadora {
public int x;
public int y;
private double Resultado ;
private static int Operaciones;
/** Creates a new instance of Calculadora */
public Calculadora(int x,int y,double Resultado)/* throws Exception */{
this.Resultado=Resultado;
// if(y<=0)throw new Exception("El divisor Y tiene que ser mayor que cero");
this.x=x;
this.y=y;
this.Operaciones=Operaciones;
Operaciones++;
}
/** Creates a new instance of Calculadora */
public Calculadora(int x,double Resultado) {
this.Operaciones=Operaciones;
this.Resultado=Resultado;
this.x=x;
Operaciones++;
}
public int getX(){
return x;
}
public void sety(int y)throws Exception {
if(y<=0)throw new Exception("El divisor Y tiene que ser mayor que cero");
this.y=y;
}
public int getY(){
return y;
}
public int getOperaciones(){
return Operaciones;
}
public abstract double getResultado();
}
LA CLASSE DU TEST
package calculadoraabstract;
public class Main {
public Main() {
}
public static void main(String[] args) {
Calculadora C1=new Sumar(80,130,58.0);
Calculadora C2=new Restar(45,15,14.0);
Calculadora C3=new Multiplicar(125,100,125.0);
Calculadora C4=new Dividir(50,11,12.0);
imprimir(C1);
imprimir(C2);
imprimir(C3);
imprimir(C4);
}
private static void imprimir(Calculadora C) {
// throw new UnsupportedOperationException("Not yet implemented");
System.out.println("El valor de Y es : "+C.getX()+" .El valor de Y es :"+C.getY());
if(C instanceof Sumar){
Sumar C1=(Sumar)C;
System.out.println("El resultado de la Suma es: "+C1.getResultado());
}else if(C instanceof Restar) {
Restar C2=(Restar)C;
System.out.println("El resultado de la Sustraccion es: "+C2.getResultado());
}else if(C instanceof Multiplicar) {
Multiplicar C3=(Multiplicar)C;
System.out.println("El resultado del Producto es: "+C3.getResultado());
}else if(C instanceof Dividir ) {
try{
Dividir C4=(Dividir)C;
System.out.println("El resultado de la division es: " +C4.getResultado());
}catch (Exception e){
System.out.println(e.getMessage());
}
}
System.out.println("El numero de Operaciones es :"+C.getOperaciones());
}
}
Encore merci !
VOICI LE PROGRAMME QUE J'AI ECRIS EN CLASSE ABSTARCT
LA SOMME
package calculadoraabstract;
public class Sumar extends Calculadora{
public Sumar(int x,int y,double Resultado) {
super(x,y,Resultado);
}
public double getResultado() {
return (x+y);
}
public void setX(int i) {
throw new UnsupportedOperationException("Not yet implemented");
}
}
LA SOUSTRACTION
package calculadoraabstract;
public class Restar extends Calculadora{
public Restar(int x,int y,double Resultado) {
super(x,y,Resultado);
}
public double getResultado() {
return (x-y);
}
}
LA DIVISION
package calculadoraabstract;
public class Dividir extends Calculadora{
// private int y;
public Dividir(int x,int y,double Resultado) {
super(x,y,Resultado);
}
public void sety(int y)throws Exception {
if(y<=0)throw new Exception("El divisor Y tiene que ser mayor que cero");
this.y=y;
}
public double getResultado() {
return (x/y);
}
}
LA MULTIPLICATION
package calculadoraabstract;
public class Multiplicar extends Calculadora{
public Multiplicar(int x,int y,double Resultado) {
super(x,y,Resultado);
}
public double getResultado() {
return (x*y);
}
}
LA CLASSE ABSTRACT CALCULADORA
package calculadoraabstract;
public abstract class Calculadora {
public int x;
public int y;
private double Resultado ;
private static int Operaciones;
/** Creates a new instance of Calculadora */
public Calculadora(int x,int y,double Resultado)/* throws Exception */{
this.Resultado=Resultado;
// if(y<=0)throw new Exception("El divisor Y tiene que ser mayor que cero");
this.x=x;
this.y=y;
this.Operaciones=Operaciones;
Operaciones++;
}
/** Creates a new instance of Calculadora */
public Calculadora(int x,double Resultado) {
this.Operaciones=Operaciones;
this.Resultado=Resultado;
this.x=x;
Operaciones++;
}
public int getX(){
return x;
}
public void sety(int y)throws Exception {
if(y<=0)throw new Exception("El divisor Y tiene que ser mayor que cero");
this.y=y;
}
public int getY(){
return y;
}
public int getOperaciones(){
return Operaciones;
}
public abstract double getResultado();
}
LA CLASSE DU TEST
package calculadoraabstract;
public class Main {
public Main() {
}
public static void main(String[] args) {
Calculadora C1=new Sumar(80,130,58.0);
Calculadora C2=new Restar(45,15,14.0);
Calculadora C3=new Multiplicar(125,100,125.0);
Calculadora C4=new Dividir(50,11,12.0);
imprimir(C1);
imprimir(C2);
imprimir(C3);
imprimir(C4);
}
private static void imprimir(Calculadora C) {
// throw new UnsupportedOperationException("Not yet implemented");
System.out.println("El valor de Y es : "+C.getX()+" .El valor de Y es :"+C.getY());
if(C instanceof Sumar){
Sumar C1=(Sumar)C;
System.out.println("El resultado de la Suma es: "+C1.getResultado());
}else if(C instanceof Restar) {
Restar C2=(Restar)C;
System.out.println("El resultado de la Sustraccion es: "+C2.getResultado());
}else if(C instanceof Multiplicar) {
Multiplicar C3=(Multiplicar)C;
System.out.println("El resultado del Producto es: "+C3.getResultado());
}else if(C instanceof Dividir ) {
try{
Dividir C4=(Dividir)C;
System.out.println("El resultado de la division es: " +C4.getResultado());
}catch (Exception e){
System.out.println(e.getMessage());
}
}
System.out.println("El numero de Operaciones es :"+C.getOperaciones());
}
}
A voir également:
- Comment lancer une exception en interface
- Lancer une application au démarrage windows 10 - Guide
- Common interface 5v only - Forum TNT / Satellite / Réception
- Appliquez à tous les paragraphes du document à télécharger, à l’exception des titres et des sous-titres, la mise en forme suivante : - Guide
- Interface netflix - Accueil - Streaming
- Erreur d'application : une exception côté client s'est produite (consultez la console du navigateur pour plus d'informations). - Forum Google Chrome
2 réponses
Euh, je ne comprends pas tout à fait la logique que tu mets en place mais ce n'est pas grave pour moi au moins dans ta classe Calculadora la méthode devrait être :
public abstract double getResultado() throws UnsupportedOperationException;
Simplement pour indiquer que la méthode getResultado peut quelque fois soulever une exception.
Ceci dit, pourquoi est-ce que tu doit fournir un Resultado à ton constructeur ... ?
public abstract double getResultado() throws UnsupportedOperationException;
Simplement pour indiquer que la méthode getResultado peut quelque fois soulever une exception.
Ceci dit, pourquoi est-ce que tu doit fournir un Resultado à ton constructeur ... ?
Merci à tous ceux qui m'ont aidé et qui aident d'autres personnes en difficulté pour resoudre leurs probleme.
J'ai donc pu lance l'Exception de la maniere suivante :
public abstract getResultado() throws Exception ;
C'est dans la classe abstract Resutado que je devais lancer l'exception et non dans
public void setY ( int y) throws Exception {
if ( y< = 0)throw new Exception ("La valeur de Y doit etre superieure à Zero");
J'ai donc pu lance l'Exception de la maniere suivante :
public abstract getResultado() throws Exception ;
C'est dans la classe abstract Resutado que je devais lancer l'exception et non dans
public void setY ( int y) throws Exception {
if ( y< = 0)throw new Exception ("La valeur de Y doit etre superieure à Zero");