在这种情况下抛出什么类型的异常?

2023-12-31

我正在编写一个 C# 应用程序,它使用自动化来控制另一个程序。当然,该程序必须运行才能使我的程序正常工作。当我的程序查找应用程序但找不到它时,我想抛出异常(当然,现在我可以尝试打开应用程序,或者告诉用户打开它,或者......)。

我应该实现自定义异常 - 还是使用现有的 NotSupportedException(或其他 .NET 异常之一)。如果是自定义异常,您有什么建议?我正在考虑实现一个自定义异常,我将其称为 MyAppNameException,然后仅使用该消息来声明问题是什么?

是否有任何通用规则可以使您的程序更具可读性和用户友好性来抛出异常,或者我只是想太多了:)?

Thanks!


  1. 首先,定义MyAppCustomException作为抽象基类。

  2. 然后继承它AppNotFoundCustomException.

这样你就可以抓住all您的应用程序的例外情况,或者只是specific ones.

下面是一些示例代码来说明这个概念:

public abstract class MyAppCustomException : System.Exception
{
    internal MyAppCustomException(string message)
        : base(message)
    {
    }

    internal MyAppCustomException(string message, System.Exception innerException)
        : base(message,innerException)
    {            
    }
}

public class AppNotFoundCustomException : MyAppCustomException
{
    public AppNotFoundCustomException(): base("Could not find app")
    {
    }
}

这是一位客户try/catch例子:

try 
{
   // Do Stuff
}
catch(AppNotFoundCustomException)
{
   // We know how to handle this
}
catch(MyAppCustomException) // base class
{
   // we don't know how to handle this, but we know it's a problem with our app
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在这种情况下抛出什么类型的异常? 的相关文章

随机推荐