2017-01-27 11 views
0

Я пишу обертку для SSHnet dll из renci (https://sshnet.codeplex.com/), поэтому я могу периодически загружать файлы с сервера sFTP через Dynamics AX.AX 2012 R3 Visual Studio project C# ошибки синтаксического анализа

Когда я ломаю ошибки в проекте C#, например, в инструкции try catch, как я могу разобрать сообщение об ошибке обратно в AX?

Варианты, о которых я думал;

  1. Должен ли я поставить ошибки сообщение в строковой переменной и прочитать string в Dynamics AX?

  2. Сообщите так: ошибки в журнал событий на AOS/client?

ответ

1

Самый простой способ передать ошибку AX является Rethrow это в C#

catch (Exception ex) 
{ 
    // Do special cleanup, logging etc. 
    throw; 
} 

и поймать его в AX

catch (Exception::CLRError) 
{ 
    ex = ClrInterop::getLastException(); 
    if (ex != null) 
    { 
     ex = ex.get_InnerException(); 
     if (ex != null) 
     { 
      error(ex.ToString()); 
     } 
    } 
} 
+0

Aliaksandr, Большое спасибо! – cel0x

+1

rethrow следует писать как 'throw;' См. Http://stackoverflow.com/questions/178456/what-is-the-proper-way-to-re-throw-an-exception-in-c и https://blogs.msdn.microsoft.com/jmstall/2007/02/15/throw-e-vs-throw/ – Matej