哪一个:
using (var myObject = new MyClass())
{
try
{
// something here...
}
catch(Exception ex)
{
// Handle exception
}
}
Run Code Online (Sandbox Code Playgroud)
要么
try
{
using (var myObject = new MyClass())
{
// something here...
}
}
catch(Exception ex)
{
// Handle exception
}
Run Code Online (Sandbox Code Playgroud) 是否有一个好的,免费的telnet库可用于C#(不是ASP .NET)?我在谷歌上发现了一些,但它们都有一个或另一个问题(不支持登录/密码,不支持脚本模式).
我假设MS仍然没有包含一个telnet库作为.NET v3.5的一部分,因为我找不到它.尽管如此,我还是会错的.
可能重复:
try/catch + using,正确的语法
我想要try/catch以下内容:
//write to file
using (StreamWriter sw = File.AppendText(filePath))
{
sw.WriteLine(message);
}
Run Code Online (Sandbox Code Playgroud)
我把这些try/catch块放在using声明中还是周围?或两者?
我有以下代码:
class Program
{
static void Main()
{
var connection = new SqlConnection("myConnectionString");
connection.Open();
connection.StateChange += HandleSqlConnectionDrop;
Console.WriteLine("Hi");
Console.ReadLine();
}
private static void HandleSqlConnectionDrop(object connection, StateChangeEventArgs args)
{
Console.WriteLine("DB change detected");
}
}
Run Code Online (Sandbox Code Playgroud)
我在SQL服务器实例运行时启动上面的代码.然后我继续执行
SHUTDOWN WITH NOWAIT;
Run Code Online (Sandbox Code Playgroud)
在程序连接到的SQL Server实例上.然后我观察SQL服务器服务停止.但是,我从未在输出中看到"检测到DB更改"消息.为什么是这样?
旁白:如果我然后尝试对SQL连接执行操作,我将看到调用StateChange处理程序,但从未提前.有没有办法可以改变这种行为?