Csharp/C#教程:我在哪里将try / catch与“using”语句放在一起?分享


我在哪里将try / catch与“using”语句放在一起?

可能重复:
try / catch + using,正确的语法

我想try/catch以下内容:

  //write to file using (StreamWriter sw = File.AppendText(filePath)) { sw.WriteLine(message); } 

我是否将try/catch块放在using语句中,或者在它周围? 或两者?

如果您的catch语句需要访问using语句中声明的变量,那么inside是您唯一的选择。

如果你的catch语句在处理之前需要使用中引用的对象,那么inside是你唯一的选择。

如果您的catch语句采取了未知持续时间的操作,例如向用户显示消息,并且您希望在此之前处置您的资源,那么外部是您的最佳选择。

每当我有一个类似于此的scenerio时,try-catch块通常采用与使用中调用堆栈相同的不同方法。 对于方法来说,知道如何处理在其中发生的exception是不常见的。

所以我的一般推荐是在外面的外面。

 private void saveButton_Click(object sender, EventArgs args) { try { SaveFile(myFile); // The using statement will appear somewhere in here. } catch (IOException ex) { MessageBox.Show(ex.Message); } } 

我想这是首选方式:

 try { using (StreamWriter sw = File.AppendText(filePath)) { sw.WriteLine(message); } } catch(Exception ex) { // Handle exception } 

如果你还需要一个try / catch块,那么using语句不会给你带来太大的收益。 只是放弃它而是这样做:

上述就是C#学习教程:我在哪里将try / catch与“using”语句放在一起?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 StreamWriter sw = null; try { sw = File.AppendText(filePath); sw.WriteLine(message); } catch(Exception) { } finally { if (sw != null) sw.Dispose(); } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/997258.html

(0)
上一篇 2021年12月26日
下一篇 2021年12月26日

精彩推荐