2011-04-15 76 views

回答

3

下面是解决方法之一:

System.Exception      e; // declare 

;

try 
{ 
     ... code that can throw clr error 
} 
catch (Exception::CLRError) 
{ 
     e = CLRInterop::getLastException(); 

     while(e) 
     { 
      info(e.get_Message()); 
      e = e.get_InnerException(); 
     } 
} 

而且在这里阅读更多: http://blogs.msdn.com/b/emeadaxsupport/archive/2010/07/22/working-with-clr-exceptions-in-dynamics-ax-x-code.aspx

+0

我不想不得不把异常处理周围的每一个CLR调用我们做。是不是有一个设置,以便它将错误放入信息/错误日志或什么? – 2011-04-18 06:31:09

+0

那么,如果你向CLR添加了依赖关系的代码,那并不是你需要做的。如果你想遵循最佳实践,你还需要声明CLR Interop许可。 我想你可以修改类Info和方法add(),但这是不好的做法。 有趣的是,看看AX2012如何解决这个问题。至于AX 2009,有最佳实践指南,当您需要依赖于CLR的代码时,应确保错误处理正确完成:http://msdn.microsoft.com/zh-cn/library/ee677495.aspx – Skaue 2011-04-18 07:10:51