尝试/ catch +使用,正确的语法
哪一个:
using (var myObject = new MyClass())
{
try
{
// something here...
}
catch(Exception ex)
{
// Handle exception
}
}
要么
try
{
using (var myObject = new MyClass())
{
// something here...
}
}
catch(Exception ex)
{
// Handle exception
}
我更喜欢第二个。 也可以捕捉与创建对象有关的错误。
由于使用块只是try / finally(MSDN)的语法简化,因此我个人会采用以下方法,但我怀疑它与第二个选项有很大不同:
MyClass myObject = null;
try {
myObject = new MyClass();
//important stuff
} catch (Exception ex) {
//handle exception
} finally {
if(myObject is IDisposable) myObject.Dispose();
}
如果你的catch语句需要访问using语句中声明的变量,那么inside就是你唯一的选择。
如果您的catch语句需要在使用前引用的对象,那么inside就是您唯一的选择。
如果你的catch语句采取了一个持续时间不明的行为,比如向用户显示一条消息,并且你希望在这种情况发生之前处理你的资源,那么外部是你最好的选择。
每当我有一个与此类似的scenerio时,try-catch块通常使用不同的方法进一步调用堆栈。 知道如何处理发生在其中的异常的方法不是典型的。
所以我的一般推荐是外面的。
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);
}
}
链接地址: http://www.djcxy.com/p/21129.html
上一篇: try/catch + using, right syntax
下一篇: Can I catch multiple Java exceptions in the same catch clause?