如何使用IKVM将.NET异常强制转换为Java Exception?

时间:2014-04-21 13:41:01

标签: .net ikvm

我的解决方案设计如下:

+--------------------+
|     .NET exe       |     throws .NET Exception 
|--------------------|
|      IKVM          |             |  <------------auto conversion?
+--------------------+             v
|  java jar assembly |       java exception 
+--------------------+

当.net exe将一个异常,例如System.NotSupportedException抛出到java jar库程序集中时,基于java的程序集需要抛出java异常,而.net库异常则基于非java异常。

如果.NET try {} catch {}将.net异常转换为ikvm java异常,它可以正常工作。

但我不认为这是聪明的方式。

有没有办法优雅地将.NET异常转换为java异常?

2 个答案:

答案 0 :(得分:2)

我不会将.NET异常抛给Java层,而不是允许异常跨越从HTTP层到客户端视图的边界。

我认为.NET组件应该捕获并处理所有异常,并以对客户更好的方式将失败传达给Java。

答案 1 :(得分:1)

这是个坏主意,因为在IKVM.NET中,java.lang.Throwable只是System.Exception的别名,它最终将在抛出之前转换回.NET异常!