如何捕获类型中的异常?

时间:2014-04-02 20:02:40

标签: c# scala try-catch

来自Scala背景我非常喜欢scala.util.Try成语,它可以让您在保持安全的同时编写少量的try-catch代码。

以下是一个用例示例:

    public static bool ConnectedToDB()
    {
        var cmd = new SqlCommand(@"select count(*) from SomeTable (nolock)");
        try
        {
            Execute<int>(cmd, DBConnctionString);                
        }
        catch
        {
            return false;
        }
        return true;
    }

如果我能写下来会很棒:

    public static bool ConnectedToDB()
    {
        var cmd = new SqlCommand(@"select count(*) from SomeTable (nolock)");
        return new Try(Execute<int>(cmd, DBConnctionString)).IsSuccess();
    }

是否有一个为C#提供类似类型的库?
我知道我可以自己写这个,但我宁愿重用已知/现有的解决方案。

1 个答案:

答案 0 :(得分:1)

自己编写这样的方法很容易:

public static bool Try(Action action)
{
    try
    {
        action();
        return true;
    }
    catch { return false; }
}

这允许你写:

public static bool ConnectedToDB()
{
    var cmd = new SqlCommand(@"select count(*) from SomeTable (nolock)");
    return Try(() => Execute<int>(cmd, AD_SMDBConnctionString));
}