温故而知新异常和异常处理

  C#语言的异常处理功能可以帮你处理程序运行时出现的任何以外和异常情况。异常处理使用try、catch和inally关键字尝试某些操作,以处理失败情况,尽管这些操作有可能失败,但如果你确定需要这么做,且希望在事后清理资源,就可以尝试这样做。CLR、.NET Framework或任何第三方库或者应用程序代码都可以生成异常。异常使用throw关键字创建。

  很多情况下,异常可能不是由代码直接调用的方法引发,而是由调用堆栈中位置更靠下的另一个方法所引发的。这种情况下,CLR将展开堆栈,查找是否有方法包含针对该特定异常雷响的catch块,如果找到这样的方法,就会执行赵东的第一个这样的catch块。如果在调用堆栈中的任何位置都没有找到适当的catch块,就会终止该进程(显示一条错误信息)。

  各种异常最终都是有System.Exception派生而来。

  在可能引发异常的语句周围使用try块。

  一旦try快中发生异常,控制流将跳转到第一个关联的异常处理程序(无论该处理程序存在于调用堆栈中的什么位置)。catch关键字用于定义异常处理程序。

  如果给定异常没有异常处理程序,则程序将停止执行,并显示一条错误消息。

  除非您可以处理摸个一次并使应用程序处于已知状态,否则不要捕捉该异常。如果捕捉System.Exception,在catch块的末尾使用throw关键字再次引发该异常。

  如果catch快定义了一个异常变量,可以使用它获取有关所发生异常类型的更多信息。

  可以使用throw显示地引发异常。

  即使发生异常也会执行finally块中的代码。使用finally释放资源(关闭在try快中打开的任何流或文件)。

原文地址:https://www.cnblogs.com/zhangxiaohui/p/2627390.html