C#抛出了什么,最后意味着什么?

时间:2012-06-19 08:05:03

标签: c# try-catch try-catch-finally

假设您正在运行程序,

它符合“THROW”声明......会发生什么? 程序会停止吗?会继续吗?

什么是“最终”?

请用简单的词语表达我的理解

4 个答案:

答案 0 :(得分:1)

如果程序meeets throw指示它抛出异常。

您的应用程序是停止还是继续运行取决于您处理该异常,而不是catch指令。

相反,

finally被引入保证在该块内执行包含代码或者抛出异常。

答案 1 :(得分:1)

请参阅此处的抛出MSDN文档:http://msdn.microsoft.com/en-us/library/1ah5wsex.aspx

简而言之,throw引发了异常。如果您处于try-catch块中,那么它将被捕获,否则您的程序可能会崩溃。

finally块在try-catch块之后执行,无论是否存在抛出(并被捕获)的异常。

答案 2 :(得分:1)

throw语句用于在程序执行期间发出异常情况(异常)的信号。通常,throw语句与try-catch或try-finally语句一起使用。抛出异常时,程序会查找处理此异常的catch语句。

finally块对于清理try块中分配的任何资源以及运行任何必须执行的代码(即使存在异常)也很有用。无论try块如何退出,控制总是传递给finally块。

投掷:http://msdn.microsoft.com/en-us/library/1ah5wsex(v=vs.80).aspx

最后:http://msdn.microsoft.com/en-us/library/zwc8s4fz(v=vs.80).aspx

答案 3 :(得分:1)

您可以在此处找到大量信息:

http://msdn.microsoft.com/en-us/library/ms173160(v=vs.80).aspx

  

例外具有以下属性:

     
      
  • 当您的应用程序遇到异常情况时,例如除以零或内存不足警告时,会生成异常。
  •   
  • 在可能引发异常的语句周围使用try块。
  •   
  • 在try块中发生异常后,控制流会立即跳转到关联的异常处理程序(如果存在)。
  •   
  • 如果没有给定异常的异常处理程序,程序将停止执行并显示错误消息。
  •   
  • 如果catch块定义了异常变量,您可以使用它来获取有关发生的异常类型的更多信息。
  •   
  • 使用try关键字执行可能导致异常的操作。
  •   
  • 异常处理程序是发生异常时执行的代码块。在C#中,catch关键字用于定义异常处理程序。
  •   
  • 使用throw关键字的程序可以显式生成异常。
  •   
  • 异常对象包含有关错误的详细信息,包括调用堆栈的状态和错误的文本描述。
  •   
  • 即使抛出异常,也会执行finally块中的代码,从而允许程序释放资源。
  •