Ver Mensaje Individual
  #2 (permalink)  
Antiguo 30/06/2011, 13:32
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años, 7 meses
Puntos: 344
Respuesta: Manejo de excepciones

Tienes que poner la función dentro del try:

Código C++:
Ver original
  1. /*
  2. Jorge Villada
  3. Universidad del valle - Palmira, colombia
  4. Cuantos metros se avanza en una bicicleta cuyas
  5. ruedas tienen un diámetro D; después de que
  6. estas han girado N veces.
  7. */
  8. #include <iostream>
  9. using namespace std;
  10. //Prototipo de funcion hallarMetros
  11. float hallarMetros (float, float );
  12. int main(){
  13.        //defino las variables que necesito
  14.         float d,n;
  15.         cout << "Introduce el Diametro de la rueda de la Bici: ";
  16.         cin >> d;
  17.         cout << "Introduce el numero de vueltas que da la Bici: ";
  18.         cin >> n;
  19.         try{
  20.             if (d <= 0){
  21.                 string err ("Error, el diametro tiene que ser mayor que 0");
  22.                 throw err;
  23.             }
  24.             if (n < 0){
  25.                 string err ("Error el numero de vueltas tiene que ser mayor que 0");
  26.                 throw err;
  27.             }
  28.         cout << hallarMetros(d,n);        
  29.         }
  30.         catch (string error) {
  31.             cout << error << endl;
  32.         }
  33.      
  34.        return 0;
  35. }
  36. //funcion hallarMetros
  37. float hallarMetros (float D, float N){
  38.       float hM;
  39.        hM = 3.1416 * D * N;
  40.       return hM;
  41. }

En cualquier caso sería más elegante lanzar las excepciones dentro de la función hallarMetros:


Código C++:
Ver original
  1. /*
  2. Jorge Villada
  3. Universidad del valle - Palmira, colombia
  4. Cuantos metros se avanza en una bicicleta cuyas
  5. ruedas tienen un diámetro D; después de que
  6. estas han girado N veces.
  7. */
  8. #include <iostream>
  9. using namespace std;
  10. //Prototipo de funcion hallarMetros
  11. float hallarMetros (float, float );
  12. int main(){
  13.        //defino las variables que necesito
  14.         float d,n;
  15.         cout << "Introduce el Diametro de la rueda de la Bici: ";
  16.         cin >> d;
  17.         cout << "Introduce el numero de vueltas que da la Bici: ";
  18.         cin >> n;
  19.         try{
  20.             cout << hallarMetros(d,n);
  21.         }
  22.         catch (string error) {
  23.             cout << error << endl;
  24.         }
  25.        
  26.        return 0;
  27. }
  28. //funcion hallarMetros
  29. float hallarMetros (float D, float N){      
  30.       float hM;
  31.      
  32.       if (d <= 0){
  33.                 string err ("Error, el diametro tiene que ser mayor que 0");
  34.                 throw err;
  35.             }
  36.             if (N < 0){
  37.                 string err ("Error el numero de vueltas tiene que ser mayor que 0");
  38.                 throw err;
  39.             }
  40.        hM = 3.1416 * D * N;
  41.       return hM;
  42. }