如何捕获类型中的异常

本文关键字:异常 类型 何捕获 | 更新日期: 2023-09-27 17:56:20

来自

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# 提供类似类型的库?
我知道我可以自己写这个,但我宁愿重用已知/现有的解决方案。

如何捕获类型中的异常

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

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));
}