关于Remoting中的客户端调用服务端方法,在服务端抛出异常的原因及解决办法

时间:2020-12-28 14:47:53

大家都很熟悉结构化的异常处理方式。最近遇到一个问题,我在练习Remtoting,将业务逻辑放在服务端实现。而客户端则主要用于获取数据,并负责界面及数据的展示。是一个很平常的三层应用,但是在调试时出现了些意外。

先Debug服务端(一个解决方案),然后再Debug客户端。问题来了,客户端在通关服务类的代理对象调用时,在服务端抛出了异常。奇怪的是,异常居然不能在客户端捕获。怎么可能?

这不就颠覆了传统的异常处理机制了?客户端无法捕获服务端抛出的异常,也就无法获得处理失败的异常信息。注意,这里的异常还只是系统提供的异常。并没有涉及到自定义异常可能产生的未继承RemotingException,以及未序列化等因素。我想系统定义的异常类肯定不会涉及到这些问题而无法传播到客户端的。

到网上找了一些原因,该设的什么Customerror都设了,还是不见效。最终还是在,一位老兄的文章里知道了。要看到客户端捕获异常的效果,服务端的解决方案必须直接运行程序而不是Debug。试了一下,果然如此,纠结了好一段时间了。