C/C++异常处理

来源:百度知道 编辑:UC知道 时间:2024/06/08 13:44:52
谁能帮我解释一下异常处理,我学过C/C++但是我从来就没有用过异常处理,现在想学学,在网上找了很多资料,但是写的都太难理解了,谁能介绍一下,如何使用?什么情况下使用?最好有代码段。在VC下运行的。
while()循环输入参数的时候后面加个.eof()是不是去掉也可以,只要输入的是三个数字就行,加上他是判断什么的?
还有就是还有其他例子吗?我感觉你这个写的太简单了,实际项目中就是这样的吗?还有没有例子,叫我看看。
while()循环怎么可能直走一次呀?加不加eof都可以多次执行。加eof还有其他用处吗?

这个很难说清楚,基本上就是:
try
{
//.......
throw ...
}
catch()
{
//......
}
也就是一个程序段要抛出一个异常,然后要写一个相应的catch代码来捕获这个相应的异常。抛出的异常类型要与紧跟在try代码块之后的catch代码的形参相对应。一个try程序块之后可以紧跟多个catch程序块,但必须保证在try程序块中得抛出一个与之后catch代码的形参列表所匹配的异常类型。
比如说你在try代码块内抛出一个int 类型的异常,那么在紧跟其后的catch代码块的形参列表中就应该是一个int类型。最后catch代码块在捕获了这个抛出的异常后就可以对这个异常做处理,同时也可以再抛出一个异常。
下面给一个我为楼主写的例子,楼主可以看一下。这是一个求二次方程两个根的问题,里面就用到了异常的抛出与捕获。
#include<iostream>
#include<math.h>
using namespace std;
double Quadratic(double A,double B,double C,bool choose)
{
if(A)
{
if((B*B-4*A*C)<0)
throw "Error";
else
if(choose)
return ((-1)*B+sqrt(B*B-4*A*C))/(2*A);
else
return ((-1)*B-sqrt(B*B-4*A*C))/(2*A);
}
else
throw C/((-1)*B);
}
int main()
{
try
{
double A,B,C;
cout<<"Enter three number:";
while(!(cin>>