52 lines
1.0 KiB
C++
52 lines
1.0 KiB
C++
#include <iostream>
|
|
|
|
class DivideByZero {
|
|
private:
|
|
std::string message;
|
|
public:
|
|
DivideByZero() : message("ERROR: Division by zero") {
|
|
}
|
|
void print() {
|
|
std::cout << message << std::endl;
|
|
}
|
|
};
|
|
|
|
//float divide(int numerator, int denominator) throw (DivideByZero) { //only DivideByZero exception is allowed
|
|
//float divide(int numerator, int denominator) throw () { //no exceptions allowed
|
|
float divide(int numerator, int denominator) { // all exceptions allowed
|
|
if (denominator==0) throw DivideByZero();
|
|
return (float)numerator/denominator;
|
|
}
|
|
|
|
void first() {
|
|
int num1=1, num2=0;
|
|
try {
|
|
float res=divide(num1, num2);
|
|
std::cout << "Result = " << res << std::endl;
|
|
} catch (DivideByZero e) {
|
|
e.print();
|
|
}
|
|
}
|
|
/**/
|
|
/*
|
|
void second() {
|
|
int num1=1, num2=0;
|
|
float res=divide(num1, num2);
|
|
std::cout << "Result = " << res << std::endl;
|
|
}
|
|
|
|
void first() {
|
|
try {
|
|
second();
|
|
} catch (DivideByZero e) {
|
|
e.print();
|
|
}
|
|
}
|
|
*/
|
|
|
|
int main() {
|
|
first();
|
|
//second();
|
|
return 0;
|
|
}
|