我的解决方案设计如下:
+--------------------+
| .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异常?
答案 0 :(得分:2)
我不会将.NET异常抛给Java层,而不是允许异常跨越从HTTP层到客户端视图的边界。
我认为.NET组件应该捕获并处理所有异常,并以对客户更好的方式将失败传达给Java。
答案 1 :(得分:1)
这是个坏主意,因为在IKVM.NET中,java.lang.Throwable只是System.Exception的别名,它最终将在抛出之前转换回.NET异常!