异常处理差异问题

时间:2009-05-08 08:53:12

标签: vb.net exception exception-handling

可以捕获异常并抛出一个新的异常,它将第一个异常包装为内部异常:

http://msdn.microsoft.com/en-us/library/system.exception.innerexception(VS.71).aspx

另外,如果我调用一个函数并抛出某个错误,但我抓住它,调用代码的catch处理程序会执行吗?如果是这样,并且它是一个更高的异常类型,这不是包装异常吗?

例如,我可以抛出IndexOutOfRange类型的异常ex,记录它但重新抛出,捕获更高的异常并执行某些操作,或者我可以抛出一个新异常并包装一个内部异常,如:

抛出新的MyException(“some error”,ex.InnerException)

由于

1 个答案:

答案 0 :(得分:1)

  1. 是的,你可以抛出一个包装第一个函数的异常

  2. 此外,如果我调用一个函数并抛出某个错误,但我抓住它,调用代码的catch处理程序是否会执行?

  3. 没有

    1. 如果是,并且它具有更高的异常类型,这是不是包装异常? 我没有得到这个,但它看起来像原始意义上的Wrapper一词。