Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 为第三方网站使用的自定义dll设计异常_C#_Asp.net_Exception Handling - Fatal编程技术网

C# 为第三方网站使用的自定义dll设计异常

C# 为第三方网站使用的自定义dll设计异常,c#,asp.net,exception-handling,C#,Asp.net,Exception Handling,我正在设计一个类库,它将被发送给公众用于他们的应用程序。它与他们需要安装在服务器上的自定义数据库系统进行交互 我很难决定如何从这个dll抛出异常,这个dll主要是自定义db系统的包装器 我假设我必须创建可以指示各种类型错误的自定义异常,包括验证、数据完整性错误等 此dll最终将由面向公众的网站使用。我想通过抛出适当的异常向最终用户提供一个良好的反馈,以便站点可以决定是否显示它们。但我不确定是否有可能预测所有用户输入错误。对于未接受的事件,我是否只是抛出一个带有错误消息的常规.net异常 我使用过

我正在设计一个类库,它将被发送给公众用于他们的应用程序。它与他们需要安装在服务器上的自定义数据库系统进行交互

我很难决定如何从这个dll抛出异常,这个dll主要是自定义db系统的包装器

我假设我必须创建可以指示各种类型错误的自定义异常,包括验证、数据完整性错误等

此dll最终将由面向公众的网站使用。我想通过抛出适当的异常向最终用户提供一个良好的反馈,以便站点可以决定是否显示它们。但我不确定是否有可能预测所有用户输入错误。对于未接受的事件,我是否只是抛出一个带有错误消息的常规.net异常


我使用过许多第三方DLL,它们没有为您提供处理错误的明确方法,我不想成为其中的一员。

如果DLL对错误的了解比捕获的异常中指示的要多,您应该重新显示自定义异常,如果您不知道,那么您就不知道更多,把它传过去


需要明确的是,这并不意味着您不能在检测错误时抛出自己的异常。

创建自定义异常的唯一原因是调用代码需要显式捕获它以了解您的异常和其他异常之间的差异

如果调用方要将您的异常处理为完全相同的,例如,
invalidooperationexception
,那么您应该抛出
invalidooperationexception


请参阅。

为什么需要自定义异常?Thow
无效操作异常
。打电话的人会因为这种不匹配而做一些特别的事情吗?对于找不到的文件,他们会做一些不同的事情吗?是的,当发生此异常时(发生的原因是最终用户输入的数据不匹配),应该将消息通知他们,以便用户可以更正此消息,而不仅仅是说有问题。站点/应用程序不知道何时向用户显示消息。在这种情况下,您只需要一个自定义异常。它可能被称为
DisplayThisMessageToTheUserException
。我自己也偶尔需要这样一个例外,我想知道为什么微软没有添加它。您可以只使用
Exception
,但随后将向用户显示所有消息。在向用户显示之前,您可能希望使消息美观。