About exception

来源:互联网 发布:js ui框架 编辑:程序博客网 时间:2024/06/11 23:17
1  clear up in the try{ }catch{ }
if exception happen, the system first clear up the objects which have been created in the try block,then go into the catch block;
if objects in array happen error during initialization,such as A array = new A[ 7] and some error happen in initializing the object array[3], then the handling system will auto call delete[ ] to properly release the storage.  

2 no mathcing coversions
//C23Autoexcp.cpp#include <iostream>using namespace std;class Except1 {};class Except2 {public:  Except2(Except1&) {}};void f() { throw Except1(); }int main() {  try { f();  } catch (Except2) {    cout << "inside catch(Except2)" << endl;  } catch (Except1) {    cout << "inside catch(Except1)" << endl;  }  cin.get();}
Output: inside catch(Except1)
  
when f( ) throw Except1( ) , the first handler will not convert an Except1 object into an Except2 by calling constructer; so you will end up at second handler.However a base-class handler can catch a derived-class exception;


原创粉丝点击