【问题标题】:Exception handling differences questions异常处理差异问题
【发布时间】:2009-05-08 08:53:11
【问题描述】:

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

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

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

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

throw new MyException("some error", ex.InnerException)

谢谢

【问题讨论】:

    标签: vb.net exception exception-handling


    【解决方案1】:
    1. 是的,您可以抛出包装第一个函数的异常

    2. 另外,如果我调用了一个函数,它抛出了某个错误,但我捕获了它,调用代码的 catch 处理程序会执行吗?

    没有。

    1. 如果是这样,并且它是更高的异常类型,这不是包装异常吗? 我不太明白这个,但它看起来像原始意义上的 Wrapper 一词。

    【讨论】:

      猜你喜欢
      • 2016-06-27
      • 1970-01-01
      • 2011-01-18
      • 2011-04-27
      • 2011-11-02
      相关资源
      最近更新 更多