try catch为什么没有捕获到除0异常
代码如下:
问题是:
1.程序运行时为什么没有捕获到异常,输出为:
No abnormal in Crash
No Abnormal in Main
2.如果把Crash函数中注释掉的两个cout语句(或任意一个)打开,程序运行时系统会报出异常对话框,为何程序没有捕获到?
3.是不是每个异常都需要在程序中throw?
4.要捕获异常系统抛出的异常是否需要在编译器中设置什么选项(VS2008)?
#include "stdafx.h"
#include <exception>
#include <iostream>
using namespace std;
void Crash(void)
{
int i = 1;
int j = 0;
try
{
i /= j;
//cout << i << endl; //cout the value
}
catch(...)
{
cout << "Abnormal in Crash" << endl;
}
//cout << i << endl;
printf("No abnormal in Crash\n");
}
int _tmain(int argc, _TCHAR* argv[])
{
int i = 1;
int j = 0;
try
{
Crash();
}
catch(float i)
{
cout << "Error FLOAT:" << i << endl;
}
catch(int i)
{
cout << "Error INT:" << i << endl;
}
catch(...)
{
cout << "Abnormal in Main" << endl;
}
cout << "No Abnormal in Main" << endl;
getchar();
return 0;
}
问题是:
1.程序运行时为什么没有捕获到异常,输出为:
No abnormal in Crash
No Abnormal in Main
2.如果把Crash函数中注释掉的两个cout语句(或任意一个)打开,程序运行时系统会报出异常对话框,为何程序没有捕获到?
3.是不是每个异常都需要在程序中throw?
4.要捕获异常系统抛出的异常是否需要在编译器中设置什么选项(VS2008)?
...全文
相关推荐
C#程序中除零异常的捕获与处理
内容概要:本文介绍了 C# 程序中如何捕获和处理当除数为0时可能出现的DivideByZeroException异常。程序通过Console接收两个整数输入并计算它们之间的商值,在捕获到除法导致的异常情况时将错误信息打印出来。 适用人群:面向具有一定编程基础的学习者或开发者。 使用场景及目标:适用于需要对异常情况进行处理的基础 C# 程序开发。 其他说明:本文仅提供了一个简单的示例用于理解和掌握C# 中基本的异常处理机制,实际应用可能涉及更复杂的异常捕捉和技术实现。
TryCatchFinally:探索“尝试”,“捕获”和“最终”以进行错误处理
TryCatchFinally:探索“尝试”,“捕获”和“最终”以进行错误处理
Java异常处理原理与用法实例分析
主要介绍了Java异常处理原理与用法,结合实例形式分析了Java异常处理相关概念、原理、用法及操作注意事项,需要的朋友可以参考下
JAVA中异常处理的WORD文档
异常处理的一般格式,用法流程及关键字throw throws try catch finally exception等的使用
Java异常处理.pdf
Java异常处理


