// 编写一个C++ 函数 divideNumbers，接受两个整数作为参数，并返回它们的商。 在函数中处理以下异常情况： 1）如果除数为0，则抛出 std::logic_error 异常类的一个实例，并传递适当的错误消息。 2）如果被除数为0，则抛出 std::runtime_error 异常类的一个实例，并传递适当的错误消息。
// 【要求】在 main 函数中调用 divideNumbers，并捕获并处理可能抛出的异常。
#include <bits/stdc++.h>

using namespace std;

int divideNumbers(int a, int b)
{
    if (b == 0)
        throw std::logic_error("除数为0");
    if (a == 0)
        throw std::runtime_error("被除数为0");
    return a / b; // 结果为整数商
}

int main()
{
    try
    {
        cout << "请输入两个整数：" << endl;
        int a, b;
        cin >> a >> b;
        cout << a << " 和 " << b << " 的商为：" << divideNumbers(a, b) << endl;
    }
    catch (const std::logic_error &e)
    {
        cout << "捕获异常：" << e.what() << endl;
    }
    catch (const std::runtime_error &e)
    {
        cout << "捕获异常：" << e.what() << endl;
    }
    catch (...)
    {
        cout << "捕获其他异常" << endl;
    }

    return 0;
}
