C# 类库异常处理

标签 c# exception class-library

我能否在 C# 类库中执行此操作以处理类库代码本身执行期间可能发生的异常?我是编写类库和其中的异常处理的新手。请指教。

private void MethodName(String text)
    {
        try
        {
            ..............
            ..............
            ..............
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message.ToString());
        }
    }

我在 google 和 stackoverflow 中搜索过,但没有找到任何文章是否允许我以这种方式处理类库中的异常,或者是否不推荐这样做。但它有效。可能是个愚蠢的问题,但我有这个疑问。

谢谢。

最佳答案

是的,你可以这样做,但一般来说,如果你要对它做些什么,你应该只捕获异常 - 即吞下它或增加它的值(value)(通过转换、包装或记录它)。

使用您的示例方法,如果 text 为空并且您的方法需要一个值,您应该抛出异常。除此之外,你应该让异常冒出来让调用者处理,除非你打算用它做一些事情,或者这是一个你打算抑制的预期异常。

你也不应该抛出新的异常,而只是使用 throw 关键字重新抛出当前异常:

catch (Exception ex)
{
    //do something

    throw;
}

关于C# 类库异常处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16093905/

相关文章:

c# - 在没有引用的情况下记录整个类库

c# - 使用 RijndaelManaged 解密 ASP.NET 成员身份的加密密码

c# - 无法在 Visual Studio 2012 中调试单元测试项目

c# - 如何在单例类中使用 DbContext?

c++ - 为什么GCC执行1/0会报Floating Point Exception?

c# - 如何避免在安装过程中在 C# 安装项目中执行关联的可执行文件

swift - “ fatal error :在展开可选值时意外发现nil”是什么意思?

c# - 阶乘函数 - 设计和测试

c# - CallContext - 值消失 - WPF

c# - 什么更快?选择 [object] 或使用 linq 选择 new {[object].value1, [object].value2}