【发布时间】:2018-06-06 18:55:29
【问题描述】:
我正在用 Java 实现一个面向对象的中间件。调用远程调用时,我将得到一个包含值描述或异常描述(异常类名称和消息)的响应字符串。我现在如何在我的客户端存根代码中抛出相应的异常,只知道类名(和消息)?
【问题讨论】:
-
使用正则表达式来识别类 (
Pattern.compile()) 和错误消息,然后通过将消息作为参数传递来使用反射调用类的构造函数 (Constructor.newInstance())。跨度> -
以这种方式创建异常实例并不是一个好主意。如果该类不存在或不支持您期望的构造函数怎么办?而是让中间件抛出它自己的异常,在这种情况下是有意义的。
-
要求在客户端存根中抛出与服务器的对象实现所抛出的相同的 RuntimeException 类型......所以我不能抛出自定义异常。关于第一条评论:我已经知道类名和类型。您能否使用反射 API 进一步解释构造函数调用?
标签: java exception middleware