Tienes que poner la función dentro del try:
Código C++:
Ver original/*
Jorge Villada
Universidad del valle - Palmira, colombia
Cuantos metros se avanza en una bicicleta cuyas
ruedas tienen un diámetro D; después de que
estas han girado N veces.
*/
#include <iostream>
using namespace std;
//Prototipo de funcion hallarMetros
float hallarMetros (float, float );
int main(){
//defino las variables que necesito
float d,n;
cout << "Introduce el Diametro de la rueda de la Bici: ";
cin >> d;
cout << "Introduce el numero de vueltas que da la Bici: ";
cin >> n;
try{
if (d <= 0){
string err ("Error, el diametro tiene que ser mayor que 0");
throw err;
}
if (n < 0){
string err ("Error el numero de vueltas tiene que ser mayor que 0");
throw err;
}
cout << hallarMetros(d,n);
}
catch (string error) {
cout << error << endl;
}
return 0;
}
//funcion hallarMetros
float hallarMetros (float D, float N){
float hM;
hM = 3.1416 * D * N;
return hM;
}
En cualquier caso sería más elegante lanzar las excepciones dentro de la función hallarMetros:
Código C++:
Ver original/*
Jorge Villada
Universidad del valle - Palmira, colombia
Cuantos metros se avanza en una bicicleta cuyas
ruedas tienen un diámetro D; después de que
estas han girado N veces.
*/
#include <iostream>
using namespace std;
//Prototipo de funcion hallarMetros
float hallarMetros (float, float );
int main(){
//defino las variables que necesito
float d,n;
cout << "Introduce el Diametro de la rueda de la Bici: ";
cin >> d;
cout << "Introduce el numero de vueltas que da la Bici: ";
cin >> n;
try{
cout << hallarMetros(d,n);
}
catch (string error) {
cout << error << endl;
}
return 0;
}
//funcion hallarMetros
float hallarMetros (float D, float N){
float hM;
if (d <= 0){
string err ("Error, el diametro tiene que ser mayor que 0");
throw err;
}
if (N < 0){
string err ("Error el numero de vueltas tiene que ser mayor que 0");
throw err;
}
hM = 3.1416 * D * N;
return hM;
}