正如许多OOP语言一样,C#也能处理可遇见的,反常条件(丢失网络连接,文件丢失)下的异常。当应用程序遇到异常情况,它将“抛”出一个异常,并终止当前方法,直到发现一个异常处理,那个堆栈才会清空。
这意味着如果当前运行方法没有处理异常,那么将终止当前方法,并调用方法,这样会得到一个处理异常的机会。如果没有调用方法处理它,那么该异常最终会被CLR处理,它将终止程序
可以使用try/catch块来检测具有潜在危险的代码,并使用操作系统或者其他代码捕捉任何异常目标。Catch块用来实现异常处理,它包含一个执行异常事件的代码块,理想情况下,如果捕捉并处理了异常,那么应用程序可以修复这个问题并继续运行下去。即使应用程序不能继续运行,也可以捕捉这些异常,并显示有意义的错误信息,使应用程序安全终止。同时,你也有机会将这些错误书写入日志中。
如果在方法中有一段代码无论是否碰到异常都必须运行(例如,释放已经分配的资源,关闭一个打开的文件)那么可以吧代码放在finally块中。这样甚至在存在异常的代码中也能保证其运行。