#include <iostream> #include <exception> using namespace std; class A { }; int func1(int m, int n) { try { if (n == 0) { throw A(); } cout << "in func1" << endl; return m / n; } catch (exception) { cout << "catched in func1" << endl; } cout << "before end of func1" << endl; return m / n; } int main() { try { func1(5, 0); cout << "int main" << endl; } catch (A &) { cout << "catched in main"<< endl; } cout << "end of main " << endl; return 0; }
时间: 2024-03-31 20:34:44 浏览: 53
#include <iostream>
这段代码中定义了一个类A,然后定义了一个函数func1,该函数传入两个整数m和n,如果n为0,则抛出一个A类的异常。如果没有抛出异常,则输出"in func1",并返回m/n的结果。如果捕获到了一个exception类型的异常,则输出"catched in func1"。最后,无论是否抛出异常,都会输出"before end of func1",并返回m/n的结果。
在主函数中,调用了func1(5, 0)。由于n为0,所以会抛出一个A类的异常。在主函数中使用了catch(A &)来捕获这个异常,输出"catched in main"。最后,输出"end of main",程序结束。
总体来说,这段代码通过异常处理机制来处理函数中可能出现的异常情况,增强了程序的健壮性和容错性。
阅读全文