//
//  main.cpp
//  cppExceptions
//
//  Created by Minho Shin on 11/9/14.
//  Copyright (c) 2014 Minho Shin. All rights reserved.
//

#include <iostream>
#include <stdexcept>

using namespace std;

class DivideByZero : public runtime_error
{
public:
    DivideByZero() :
    runtime_error("Divide by zero exception") {}
};

double quotient(double numer, double denom) {
    if (denom == 0) {
        throw DivideByZero();
    }
    else {
        return numer / denom;
    }
}
int main(int argc, const char * argv[]) {
    // insert code here...
    std::cout << "Hello, World!\n";
    int a=10;
    int b=0;
    //try {
        //if( !b ) throw 2;
        if( !b ) throw DivideByZero();
        
        cout<< a/b << endl;
    //} catch( exception &e ) {
    //    cout << "OPPS: " << e.what() << endl;
    //}
    
    double number1, number2, ratio;
    cout << "Enter a numerator: ";
    cin >> number1;
    cout << "Enter a denominator: ";
    cin >> number2;
    try {
        ratio = quotient(number1, number2);
        cout << "Result is: " << ratio << endl;
    }
    catch (DivideByZero &except) {
        cout << except.what() << endl;
    } catch (...) {
        cout << "A error" << endl;
    }

    return 0;
}
