| 发表于:2007-08-31 15:42:55 楼主 |
这么一段代码: void f(int i, char * str) { char * c = new char [strlen(str) + 1]; if (i <0) throw i; } void g(void) { f(-1, "abc "); } void main(void) { try { g(); } catch (int i &) { cout < < "error " < <endl; } } 执行之后,会发生内存泄漏。 在更多的情况下,g这个函数是没法将所有有可能抛出异常的函数全部try catch一遍的,而f这个函数则认为,如果它抛出异常了,则要求程序中止。这种矛盾怎么解决? |
|
|
|
|