Skip to content

Latest commit

 

History

History
26 lines (26 loc) · 1.37 KB

File metadata and controls

26 lines (26 loc) · 1.37 KB

异常处理

1.catch捕获异常时,不会进行数据类型的默认转换。 2.限制异常的方法

  • 当一个函数声明中不带任何异常描述时,它可以抛出任何异常。例如:
int f(int,char);                 //函数f可以抛出任何异常
  • 在函数声明的后面添加一个throw参数表,在其中指定函数可以抛出的异常类型。例如:
int g(int,char)  throw(int,char);  //只允许抛出int和char异常。
  • 指定throw限制表为不包括任何类型的空表,不允许函数抛出任何异常。如:
int h(int,char) throw();//不允许抛出任何异常

3.捕获所有异常 在多数情况下,catch都只用于捕获某种特定类型的异常,但它也具有捕获全部异常的能力。其形式如下:

catch(…) {
    ……                        //异常处理代码
}

4.再次抛出异常 如是catch块无法处理捕获的异常,它可以将该异常再次抛出,使异常能够在恰当的地方被处理。再次抛出的异常不会再被同一个catch块所捕获,它将被传递给外部的catch块处理。要在catch块中再次抛出同一异常,只需在该catch块中添加不带任何参数的throw语句即可。 5.异常的嵌套调用 try块可以嵌套,即一个try块中可以包括另一个try块,这种嵌套可能形成一个异常处理的调用链。