重新创建异常链

本文关键字:异常 创建 新创建 | 更新日期: 2023-09-27 18:16:46

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

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

有人知道怎么做吗?

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

重新创建异常链

我将使用您自己的评论来序列化捕获相关异常细节的东西。这是安全的,因为它有助于将客户端与处理未知异常类型的异常隔离开来,并为您提供了更改异常详细信息级别的灵活性,这可能是避免潜在安全漏洞所关注的。

要"重新抛出",你可以抛出一个客户端异常,该异常将该细节作为参数(有点像内部异常)。

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