重新创建一个异常链

时间:2011-12-05 17:22:24

标签: c# exception-handling

我有一个自定义Web服务,当异常发生时,我序列化异常链并将其发送到客户端,现在工作正常。然而,我想在客户端做的是以某种方式重新创建异常链并抛出它,以便用户可以像在服务器端那样走它。

我不希望能够抛出我不知道的异常,我正在考虑抛出一堆WrappedException或者其他一些我已设置的堆栈,消息等。

有谁知道这样做的方法吗?

为了避免任何混淆,这是完全自定义的,我在xml中向Web服务器发出请求并返回xml,如果抛出异常,我将此链序列化为xml并将此xml返回给调用客户端。

1 个答案:

答案 0 :(得分:0)

我会根据您自己的评论来序列化捕获相关exception details的内容。这是安全的,因为它有助于将客户端与处理未知异常类型的异常隔离开来,并为您提供更改异常详细信息级别的灵活性,这可能会引起关注,以避免潜在的安全漏洞。

要“重新抛出”,您可以抛出一个客户端异常,将此详细信息作为参数(类似于内部异常)。

如果您仍希望尽可能使用实际异常,则可以创建客户端支持的异常类型的显式列表,或反映客户端程序集。因此,您可以通过Activator.CreateInstance创建本地异常,从服务器重新抛出顶级异常。也许你可以结合方法。