我不明白c ++,java或其他高级语言如何支持异常处理工作? 我知道如果我写一个应用程序将在用户模式下运行,如果它出现异常,如零分割,系统调用内核模式的中断例程或使用我的try / catch块???
答案 0 :(得分:0)
我想说的是: 当我用c ++编写简单代码时,例如:
#include <iostream>
using namespace std;
double divide(int a, int b)
{
if( b == 0 )
{
throw "Division by zero condition!";
}
return (a/b);
}
int main ()
{
int x = 50;
int y = 0;
double z = 0;
try {
z = divide(x, y);
cout << z << endl;
}catch (const char* msg) {
cerr << msg << endl;
}
return 0;
}
并编译它,我在异常例程中获得了一个软件。 我的意思是,在执行代码期间,CPU会尝试执行x / y并引发异常。现在,在这种情况下谁处理此错误: 1)进程非用户模式将工作流传递给我写的异常例程 要么 2)系统在内核模式下切换并抛出陷阱以运行中断例程。
我不明白linux或windows等系统用于解决异常的具体步骤是什么?