【发布时间】:2015-07-11 17:30:58
【问题描述】:
在 C#(即 .NET 中)中是否有任何方法可以引发自定义异常,但无需编写所有代码来定义您自己的从 Exception 派生的异常类?
我正在考虑类似的东西,例如在 Oracle PL/SQL 中你可以简单地编写
raise_application_error(-20001, 'An arbitary error message');
在任何地方。
【问题讨论】:
-
您可以将自定义属性添加到自定义异常类,所以您不能只创建一个自定义异常类,然后为异常的“类型”添加一个 Enum 吗?
-
如果
throw new Exception("An arbitary error message");对您不起作用,最好扩展一个问题来解释原因。 -
不,没有也不应该有。
-
@ZoharPeled 你这么说的理由是什么?
-
@mason:我的理由很简单:异常携带的信息比简单的消息要多得多。它们携带堆栈跟踪,它们可以携带内部异常等。PL/SQL 不会引发错误。另一个原因是在不使用 Exception 对象的情况下引发错误消息会违反正常的异常模式,而 .Net 没有为此提供 try...catch 机制。 (