2011-04-15 81 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