c# - 为什么抛出异常而不是让代码抛出异常?

标签 c# exception

我希望调用函数的代码能够处理函数中引发的任何异常。如果我写:

            try
            {
                // Code than may raise an exception
            }
            catch
            {
                throw;
            }

异常将随调用堆栈一起传回。我可以改写以下内容并得到相同的结果吗?在这种情况下有什么理由使用 try catch 吗?

             // Code that may raise an exception

最佳答案

在您提出的场景中,捕获然后重新抛出异常的唯一原因是您在 catch block 中执行其他操作,例如记录或清理。否则,这完全是一个空操作。

顺便说一句,如果您确实需要此构造,那么您使用的是 throw,而不是 throw e,这对您来说是件好事。前者保留了调用堆栈;后者则不然。

关于c# - 为什么抛出异常而不是让代码抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18553819/

相关文章:

exception - Netty 服务器绑定(bind)异常

java - 自定义 Grails 异常处理

c++ - 如何访问在当前函数范围之外创建的动态创建的对象?

java - 为什么允许main()方法声明异常?

C# WPF 列表框聊天

c# - 在另一个上下文中引用身份用户

c# - 在文本框中设置文本颜色 C#

C#编码模式问题

c# - 是否可以启动相同的线程?

python - 返回吃异常