当前位置:  开发笔记 > 编程语言 > 正文

重新投掷参数少捕获和不做任何事情之间的区别?

如何解决《重新投掷参数少捕获和不做任何事情之间的区别?》经验,为你挑选了1个好方法。

假设我在两个不同的程序集中有以下两个类:

//in assembly A
public class TypeA {
   // Constructor omitted
   public void MethodA
   {
     try {
       //do something
     }
     catch {
        throw;
     }
   }
}
//in assembly B
public class TypeB {
   public void MethodB
   {
     try {
       TypeA a = new TypeA();
       a.MethodA();
     }
     catch (Exception e)
       //Handle exception
     }
   }
}

在这种情况下,MethodA中的try-catch只是提升异常,但并没有真正处理它.在MethodA中使用try-catch是否有任何优势?换句话说,这种try-catch块之间是否存在差异,而根本不使用它?



1> 小智..:

在您的示例中,没有任何优势.但有些情况下,最好只是冒出一个特定的例外.

    public void Foo()
    {
        try
        {
            // Some service adapter code

            // A call to the service
        }
        catch (ServiceBoundaryException)
        {
            throw;
        }
        catch (Exception ex)
        {
            throw new AdapterBoundaryException("some message", ex);
        }
    }

这允许您轻松识别发生异常的边界.在这种情况下,您需要确保仅针对边界特定的代码抛出边界异常.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有