40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
|
// 编写一个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;
|
|||
|
}
|