c# – 有没有办法抛出自定义异常没有Exception类

在C#(即.NET)中有什么办法抛出一个自定义异常,但是没有编写所有的代码来定义你自己的异常派生的异常类?

我正在考虑类似的东西,例如在Oracle PL / sql中,您可以直接写入

raise_application_error(-20001,'An arbitary error message');

在任何地方.

解决方法

throw new Exception("A custom message for an application specific exception");

还不够好?

如果相关的话,你也可以抛出一个更具体的异常.例如,

throw new AuthenticationException("Message here");

要么

throw new FileNotFoundException("I Couldn't find your file!");

可以工作

请注意,您应该不会在MSDN上抛出新的ApplicationException().

不定制异常的主要原因是调用者捕获更困难 – 它们不会知道这是一个普遍的异常还是一个特定于您的代码的异常,而不会对exception.Message属性做一些简单的检查.你可以做一些简单的事情:

public class MyException : Exception
{
    MyException(int severity,string message) : base(message)
    {
        // do whatever you want with severity
    }
}

以避免这种情况.

更新:Visual Studio 2015现在提供了一些自动实现异常扩展类 – 如果您使用光标在:Exception上打开“快速操作和重构菜单”,只需将其声明为“生成所有构造函数”即可.

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...