🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# try-catch-finally(C# 参考) **catch** 和 **finally** 一起使用的常见方式是:在 **try** 块中获取并使用资源,在 **catch** 块中处理异常情况,并在 **finally** 块中释放资源。 有关重新引发异常的更多信息和示例,请参见 [try-catch](https://msdn.microsoft.com/zh-CN/library/0yd65esw.aspx) 和[“引发异常”](https://msdn.microsoft.com/zh-CN/library/xhcbs8fz.aspx)。有关 **finally** 的更多信息,请参见 [尝试最终](https://msdn.microsoft.com/zh-CN/library/zwc8s4fz.aspx)块。 ``` public class EHClass { void ReadFile(int index) { // To run this code, substitute a valid path from your local machine string path = @"c:\users\public\test.txt"; System.IO.StreamReader file = new System.IO.StreamReader(path); char[] buffer = new char[10]; try { file.ReadBlock(buffer, index, buffer.Length); } catch (System.IO.IOException e) { Console.WriteLine("Error reading from {0}. Message = {1}", path, e.Message); } finally { if (file != null) { file.Close(); } } // Do something with buffer... } } ``` ## C# 语言规范 有关详细信息,请参阅 [C# 语言规范](https://msdn.microsoft.com/zh-CN/library/ms228593.aspx)。该语言规范是 C# 语法和用法的权威资料。 ## 请参阅 [C# 参考](https://msdn.microsoft.com/zh-CN/library/618ayhy6.aspx) [C# 编程指南](https://msdn.microsoft.com/zh-CN/library/67ef8sbd.aspx) [C# 关键字](https://msdn.microsoft.com/zh-CN/library/x53a06bb.aspx) [try、throw 和 catch 语句 (C++)](https://msdn.microsoft.com/zh-CN/library/6dekhbbc.aspx) [异常处理语句(C# 参考)](https://msdn.microsoft.com/zh-CN/library/s7fekhdy.aspx) [throw(C# 参考)](https://msdn.microsoft.com/zh-CN/library/1ah5wsex.aspx) [如何:显式引发异常](https://msdn.microsoft.com/zh-CN/library/xhcbs8fz.aspx) [using 语句(C# 参考)](https://msdn.microsoft.com/zh-CN/library/yh598w02.aspx)