Java - Ayuda con las Exception¡¡

   
Vista:

Ayuda con las Exception¡¡

Publicado por Juanjo (4 intervenciones) el 17/07/2008 12:29:38
Hola a todos¡¡
Cree un programa que calculara el área de un rectángulo mediante una base y altura dada por el teclado:

import java.io.*;

public class UsoRectangulo2{
private double base;
private double altura;

/******************************
MÉTODO LEER
******************************/
public double leer(){
BufferedReader entrada=new BufferedReader(new InputStreamReader(System.in));
String cadena=entrada.readLine();
double valor=Double.parseDouble(cadena);
return valor;
}

/******************************
MÉTODO MOSTRAR
******************************/
public void mostrar(double area){
System.out.println("El area del rectangulo es "+area+" m^2");
}

/******************************
MÉTODO MAIN
******************************/
public void main(String args[])throws IOException{
System.out.print("Introduzca la base:");
base=leer();
System.out.print("Introduzca la altura:");
altura=leer();
Rectangulo2 r=new Rectangulo2();
double area=r.CalcularArea(altura,base);
mostrar(area);
}
}

Y al compilarlo me dio el siguiente problema:

C:juanjoUsoRectangulo2.java:12: unreported exception java.io.IOException; must be caught or declared to be thrown
String cadena=entrada.readLine();
^

Para solucionarlo modifique el método leer() de la siguiente forma:

public double leer()throws IOException{
BufferedReader entrada=new BufferedReader(new InputStreamReader(System.in));
String cadena=entrada.readLine();
double valor=Double.parseDouble(cadena);
return valor;
}

Pero siguio dandome problemas, pero ahora el problema aparecia en General Output y era el siguiente:

java.lang.NoSuchMethodError: main
Exception in thread "main"
Process completed.

Me gustaría saber como puedo solucionarlo y a qué se debe éste problema
Gracias¡¡
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con las Exception¡¡

Publicado por Rene Gonzalez (115 intervenciones) el 17/07/2008 18:02:05
Te falta agarrar la excepcion con un try/catch. En general, los metodos de objetos referentes a manejo de entrada y salida lanzan IOException, en este caso, readLine() es el que lanza esa excepcion. Tienes dos opciones:

- Cambiar tu metodo leer();
---------------------------------------------------------------------------------------------------------------------
/******************************
MÉTODO LEER
******************************/
public double leer(){
try{
BufferedReader entrada=new BufferedReader(new InputStreamReader(System.in));
String cadena=entrada.readLine();
double valor=Double.parseDouble(cadena);
return valor;
catch(IOException e){
e.printStackTrace();
}
}
---------------------------------------------------------------------------------------------------------------------

- O tambien, dado que tu metodo leer() lanza una IOException (segun la implementacion que hiciste despues), debes agarrar la exception donde lo uses, o sea, en tu main:
---------------------------------------------------------------------------------------------------------------------
/******************************
MÉTODO MAIN
******************************/
public void main(String args[])throws IOException{
try{
System.out.print("Introduzca la base:");
base=leer();
System.out.print("Introduzca la altura:");
altura=leer();
Rectangulo2 r=new Rectangulo2();
double area=r.CalcularArea(altura,base);
mostrar(area);
}
catch(IOException e){
e.printStackTrace();
}
}
---------------------------------------------------------------------------------------------------------------------

El tema puede dar para mayor discusion, pero ahi tienes dos soluciones. Suerte.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con las Exception¡¡

Publicado por angel (2 intervenciones) el 18/07/2008 08:00:55
El error que te da, es porque no encuentra un metodo "main" correctamente declarado.Debes cambiar la declaracion del metodo main por:
public static void main(String args[])

El metodo main debe ser siempre "static"

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar