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

为什么要创建自定义例外?

如何解决《为什么要创建自定义例外?》经验,为你挑选了4个好方法。

为什么我们需要在中创建自定义例外 .NET?



1> Jon Limjap..:

特定的海关例外允许您为catch语句分隔不同的错误类型.异常处理的常见构造是:

try
{}
catch (Exception ex)
{}

无论类型如何,这都会捕获所有异常.但是,如果您有自定义异常,则可以为每种类型使用单独的处理程序:

try
{}
catch (CustomException1 ex1)
{
    //handle CustomException1 type errors here
}
catch (CustomException2 ex2)
{
    //handle CustomException2 type errors here
}
catch (Exception ex)
{
    //handle all other types of exceptions here
}

因此,特定的例外允许您对异常处理进行更精细的控制.此好处不仅由自定义异常共享,还在.NET系统库中共享所有其他异常类型.



2> JaredPar..:

我最近做了一篇关于这个主题的长篇博文:

http://blogs.msdn.com/jaredpar/archive/2008/10/20/custom-exceptions-when-should-you-create-them.aspx

它的关键在于:只有在满足下列条件之一时才创建自​​定义异常

    你实际上希望有人来处理它.

    您想记录有关特定错误的信息



3> Joel Coehoor..:

所以你也可以自己扔掉它们,然后抓住它们并确切地知道它们的含义.

另外:如果你正在构建一个类库/ framework/api,那么创建一个BaseException通常会很有用,因为代码中的其他异常都会从中继承.然后,当您的代码引发异常时,正在使用它的程序员可以快速了解异常的来源.



4> krosenvold..:

因为它可以使您的意图清晰,您还可以使用IDE功能跟踪使用情况.假设您有一个名为"FooBar"的自定义后端系统,并且您创建了一个"FooBarDownException",您可以跟踪此异常的用法,以识别您的应用程序包含的任何自定义逻辑,因为FooBar已关闭.您可以选择捕获此特定类型的异常并忽略其他异常,从而避免异常处理程序中的重载和条件逻辑.它实际上只是强类型的另一个版本.这也意味着您可以避免代码中的注释,因为异常具有显示名称意图.


恕我直言,强类型可以真正地使用代码并使其变得更好,这是连续重构的推动力。因此工具很重要。
推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有