clwn.net
当前位置:首页 >> C++编程问题:看看我的try,CAtCh,throw代码为什么不起作用? >>

C++编程问题:看看我的try,CAtCh,throw代码为什么不起作用?

很正常,这句throw 22;不起作用,, 因为你在下面代码中 只捕获int类型的异常,而没有捕获其他类型的异常.当异常堆栈展开的时间,由于没有找到空指针类型的异常,程序就将控制权交给了系统处理了,因此throw 22;//根本就没有执行到这里.

是的,其实异常是个开销很大的东西,通常只是当前系统没办法处理的才抛出异常,像指针为NULL完全是程序员的失误. 举个例子,比如你设计了一个绘图中间件,有个initDrive的函数用来初始化图形界面,这时如果无法连接,我就应该抛出个

异常你可以理解也是一种类型,因此可以直接定义一个数字来表示当输入的不是数字时候,抛什么异常,我这里定义0作为输入不是数字的时候,则抛出的异常,接异常的地方可以按照你那样写,但是不推荐.下边是一个可以跑的程序,请参考.#includeusing namespace std;int main(){ char a[10]; double x; try { int flag=0; gets(a); for(int i=0;a[i]!='\0';i++) if(!(a[i]>='0'&&a[i] 评论0 0 0

try里面的是一个程序块,你把可能发生异常的程序块放到try中执行, 如果真发生异常的话,try就把这个异常抛出, 这个抛出过程由throw进行,抛出异常后, 由紧跟在try块后的 catch 接收并解决这个异常

try 是预备在哪里处异常 catch 当出现自定义异常捕捉 throw 异常处理方法

我给你一个我以前的例子,希望你能看懂,如果有不明白的地方加qq84396495#include#include using namespace std;class Person{private: int age; string name;public: void setAge(int); void setName(string);};class Error{public: virtual void show()=

如下的try-catch代码对是做错误捕获用的,在有可能出现导致程序崩溃性错误的代码段里使用可以正确、安全的对错误进行处理.try{ // 代码 }catch(e){ // 错误处理 } 而throw是“手动”制造一个异常使程序崩溃或触发上级的错误处理机制.

try { if(!strcmp(" ",this->textBox1 ->Text) || !strcmp(" ",this->textBox2 ->Text)) throw "a"; } catch (char* ) { this->label4->Text ="数据输入错误"; AfxMessageBox("数据输入错误"); };=======================================补充:请问一下 silvergingko 我给的答案对不对啊 ~

你的代码是正确的,不过catch部分需要改一下:catch (const char * str)

首先需要引用exception库,加上#include ,然后把catch(int)修改成catch(int i),然后就可以运行了.catch(int i)用来捕捉throw抛出的整数类型的数据,对于本程序也就是 0.再看看别人怎么说的.

相关文档
网站首页 | 网站地图
All rights reserved Powered by www.clwn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com